Version: 2018.1
Optimizing Performance on iOS
Measuring performance with the built-in profiler

iOS-specific optimizations

This page details optimizations that are unique to iOS deployment.

Script call optimization

Most of the functions in the UnityEngine namespace are implemented in C/C++. Calling a C/C++ function from a Mono script involves a performance overhead, so you can save about 1 to 4 milliseconds per frame using iOS Script Call optimization.

Para acceder a la optimización de iOS Script Call, vaya a la ventana Configuración del jugador (menú: Edit > Project Settings > Player) y seleccione el icono de iOS (que se muestra a continuación).

Ícono de iOS: seleccione esto para acceder a la configuración de iOS en la ventana Player Settings
Ícono de iOS: seleccione esto para acceder a la configuración de iOS en la ventana Player Settings

Locate the Script Call Optimization setting in the _Other Settings section.

Las opciones para esta configuración son:

  • Slow and Safe - el manejo predeterminado de llamadas internas de Mono con soporte de excepción.
  • Fast but no exceptions - una implementación más rápida del manejo interno de llamadas Mono. Sin embargo, esto no admite excepciones, por lo que debe usarse con precaución. Una aplicación que no maneja explícitamente las excepciones (y no necesita tratarlas con elegancia) es un candidato ideal para esta opción.

Note: There is no performance benefit when using the IL2CPP scripting backend. However, we recommend using Fast but no exceptions on release builds to avoid undefined behaviour.

Setting the frame rate

Unity iOS te permite cambiar la frecuencia con la que tu aplicación intentará ejecutar su ciclo de rendering, el cual está colocado por defecto a 30 frames por segundo. Puedes dejar más bajo este número para ahorrar batería, pero por supuesto este ahorro se hace al precio de tener menos actualizaciones de frames. De forma opuesta, puedes incrementar la velocidad de frames para dar prioridad al rendering sobre otras actividades tales como entradas de la pantalla táctil o procesamiento del acelerómetro. Necesitarás experimentar con tu escogencia de velocidad de frames para determinar en qué forma afecta la jugabilidad en el caso de tu juego.

Si tu aplicación involucra cálculos o rendering pesados y puedes mantener sólo 15 frames por segundo, por decir algo, entonces al configurar la velocidad deseada con un valor más alto que quince no ofrecería ningún desempeño adicional. La aplicación tiene que estar optimizada lo suficiente para permitir una velocidad de frames más alta.

To set the desired frame rate, change Application.targetFrameRate.

Tuning accelerometer processing frequency

Si la entrada del acelerómetro es procesada con demasiada frecuencia, entonces el desempeño global de tu juego puede verse afectado como consecuencia. Por defecto, una aplicación de Unity iOS leerá valores del acelerómetro 60 veces por segundo. Podrás ver un pequeño incremento en el desempeño reduciendo la velocidad de sampling del acelerómetro, e incluso puede llegar a cero para juegos que no usen entrada de acelerómetro. Puedes cambiar la frecuencia del acelerómetro en el panel Other Settings de los iOS Player Settings.


Optimizing Performance on iOS
Measuring performance with the built-in profiler