2009-09-25 28 views
6

¿Hay algún artículo disponible en línea donde pueda encontrar algunos consejos para mejorar el rendimiento de la aplicación de iPhone. He leído documentos de Apple sobre administración de memoria y ciclos de CPU, pero no son muy útiles.XCode configuración de compilación para el rendimiento - Aplicaciones de iPhone

¿Alguien puede sugerir algunos ajustes de XCode que podrían mejorar el rendimiento de la aplicación (versión de lanzamiento)?

Gracias jarros

+0

¿Dónde está exactamente viendo un golpe de rendimiento? – pzearfoss

Respuesta

8

corto de medición y optimización, el nivel de optimización del compilador es casi el único que va a impactar en el rendimiento de la aplicación. Normalmente, querrá un nivel de optimización de -Os; es decir, código optimizado, pero también optimizado para el tamaño. Dado que la memoria del iPhone es limitada, la reducción del tamaño del código es útil.

Más allá de eso, tendrá que medir el rendimiento de su aplicación y reaccionar en consecuencia. Hay muchas herramientas en Instrumentos y de otro modo para ayudarlo en esta tarea. Las herramientas en realidad son bastante buenas una vez que las descubres.

Dado que todavía no ha medido nada (lo cual es bueno, haga que funcione, haga las cosas bien, hágalo rápido), puede haber poca fruta colgando. ¿Reescribes algo con demasiada frecuencia? ¿Tiene algún evento temporizado automático disparando demasiado rápido? etc ... Simplemente no caigas en la trampa de la optimización prematura; la necesidad de medir & reaccionar es primordial para una optimización exitosa.

Tenga en cuenta también que puede hacer una optimización de grano grueso a través del simulador, pero realmente necesita hacer el análisis de la aplicación que se ejecuta en el dispositivo para realizar la optimización polaca final.


(1) Parece que la consulta de su base de datos es realmente lenta. Sin saber el esquema, etc., es difícil saber si ese es realmente el caso.

(2) Al realizar el análisis de rendimiento y el tiempo es consumido por una función en una biblioteca desconocida, busque la pila y vea qué llama a esa biblioteca para descubrir por qué su aplicación está desacelerando el rendimiento.

+0

¡Gracias por sus comentarios! Mi aplicación es básicamente una aplicación UIKit que les hace a los jugadores algunas preguntas y luego descubrirá su compatibilidad. Por lo tanto, tiene varios controles UI como UIButtons, UIPickerControl, UITextView, etc. Cuando el usuario selecciona un botón, la aplicación tarda hasta 2-3 segundos en responder a pesar de que solo está obteniendo una nueva pregunta de la base de datos que no lo hace tomar mucho tiempo Probé varias herramientas como Shark e Instruments y encontré que los ciclos de la CPU se desperdician y están todos en una biblioteca desconocida. Gracias – Jugs

2

Básicamente, lo que dijo bbum. Obtenga datos reales y vaya desde allí. Dicho esto, hay un par de indicadores de compilación que pueden tener un efecto sustancial:

  • Asegúrese de no estar compilando en -O0. Como lo señaló bbum, -Os es probablemente lo que quieres.
  • Si realiza una gran cantidad de cálculos en coma flotante, asegúrese de que "Compilar para el pulgar" (-mthumb) no esté configurado cuando se compile para ARMv6. La instrucción de pulgar configurada en ARMv6 no tiene instrucciones de punto flotante, por lo que se aplica una corrección por cada operación de coma flotante que se utiliza. A menudo, esto se ve compensado por el ahorro en el tamaño del código, pero si tiene mucho punto flotante puede representar un peligro para el rendimiento. Tenga en cuenta que puede construir parte de su proyecto para pulgar y parte con apagado. También tenga en cuenta que el conjunto de instrucciones thumb2 en ARMv7 admite punto flotante.
+0

¿Qué es -O0? Google no muestra nada – quantumpotato

2

La mejor forma de mejorar el rendimiento del iPhone es mejorar el rendimiento de la aplicación, y no solo a través de optimizaciones del compilador, sino a través de mejores algoritmos.

En general, las optimizaciones del compilador pueden mejorar su rendimiento en un porcentaje de uno o dos dígitos. La optimización de código con mejores algoritmos, almacenamiento en caché, nueva arquitectura, etc. podría tener una mejora porcentual de tres dígitos.

Nunca he encontrado una configuración de compilación que mejore notablemente el rendimiento de mi aplicación. Tus millas pueden variar

Cuestiones relacionadas