El área de Uso del CPU muestra dónde el tiempo es gastado en su juego. Cuando es seleccionado, el panel inferior muestra información jerárquica de tiempo para el frame seleccionado.
Modo Jerárquico: Muestra información jerárquica de tiempo.
Modo de Grupo Jerárquico: Agrupa información de tiempo en grupos lógicos (Rendering, Physics, Scripts etc.). Porque los hijos de cualquier grupo pueden estar en un grupo diferente (e.g. algunos scripts pueden llamar funciones de renderización), el porcentaje del tiempo de grupo a menudo se añade a más de 100%. (Esto no es un bug)
La manera en que el gráfico del CPU es apilado puede ser reordenado simplemente arrastrando las etiquetas del gráfico arriba y abajo.
Seleccionando Items Individuales
Cuando un ítem es seleccionado en el panel inferior, su contribución a la gráfica del CPU es subrayada (y el resto se atenúan). Haciendo click en el elemento ítem lo de-selecciona.
En la información jerárquica de tiempo, el tiempo de uno mismo (self time) se refiere a la cantidad de tiempo gastado en una función en particular no incluyendo el tiempo gastado llamando sub-funciones. En la foto de pantalla de arriba, pro ejemplo 41.1% del tiempo es gastado en la función Camera.Render. Esta función hace mucho trabajo y llama varias funciones de dibujo y de culling. Excluyendo todas estas funciones solo un 2.1% del tiempo es gastado en la función Camera.Render. Las columnas Time ms y Self ms muestran la misma información, pero presentada en mili-segundos. Por lo que, Camera.Render toma solo 0.01ms, pero incluyendo todas las funciones que llama, 0.21 ms son consumidos. La columna GC Alloc muestra qué tanta memoria ha sido asignada en el frame actual, el cual será coleccionado después por el recolector de basura (garbage collector). Al diseñar su código para mantener este valor en cero, usted puede evitar que el Garbage Collector (recolector de basura) de causar contratiempos en su framerate (velocidad de frames).
La sección Others del perfilador del CPU graba el total de todas las áreas que no caen en Renderer, Scripts, Physics, Garbage Collection o VSync. Esto incluye Animación, AI, Audio, Particles, Networking, Loading y PLayerLoop.
Physics Markers (Marcadores de física)
La descripción a continuación proporciona una breve reseña de lo que cada de los varios marcadores de alto nivel de física del profiler (high level physics profiler) significa:
Physics.Simulate: Llamado desde FixedUpdate. Esto actualiza el estado actual de física al instruir PhysX en correr su simulación.
Physics.Processing: Llamado desde FixedUpdate. Esto es dónde todos los trabajos de física sin-cloths son procesados. Expandiendo este marcador va a mostrar un detalle de bajo nivel del trabajo que se está haciendo internamente en PhysX.
Physics.ProcessingCloth: Llamado desde FixedUpdate. Esto es dónde todos los trabajos de física de cloth son procesados. Expandiendo este marcador va a mostrar un detalle de bajonivel del trabajo que se está haciendo internamente en PhysX.
Physics.FetchResults: Llamado desde FixedUpdate. Esto es dónde los resultados de la simulación de física son colectados desde PhysX.
Physics.UpdateBodies: Llamado desde FixedUpdate. Esto es dónde todos los cuerpos de física tienen sus posiciones y rotaciones actualizadas al igual que dónde los mensajes que comunican estas actualizaciones son enviados.
Physics.ProcessReports: Llamado desde FixedUpdate. Este escenario es ejecutado una vez que el fixed update de física haya concluido y es dónde todos los varios escenarios de la respuesta de los resultados de la simulación son procesados. Los Contactos, rupturas de articulaciones y triggers son actualizados e informados aquí. Hay cuatro sub-escenarios distintos:
Physics.TriggerEnterExits: Llamado desde FixedUpdate. Aquí es dónde los eventos OnTriggerEnter y OnTriggerExit son procesados.
Physics.TriggerStays: Llamado desde FixedUpdate. Aquí es dónde eventos OnTriggerStay son procesados.
Physics.Contacts: Llamado desde FixedUpdate. Aquí es dónde los eventos OnCollisionEnter, OnCollisionExit y OnCollisionStay son procesados.
Physics.JointBreaks: Llamado desde FixedUpdate. Aquí es dónde las actualizaciones y mensajes relacionados a articulaciones (joints) siendo rotas es son procesados.
Physics.UpdateCloth: Llamado desde Update. Aquí es dónde actualizaciones relacionadas a Cloth y sus skinned meshes son hechos.
Physics.Interpolation: Llamado desde Update. Este escenario trata con la interpolación de posiciones y rotaciones para todos los objetos de física.
Advertencias de Rendimiento
Hay algunos problemas de rendimiento comunes que el profiler es posible de detectar y advertirle sobre ello. Estas advertencias aparecen en la columna warning del panel inferior, cuando vea el CPU Usage.
Los problemas específicos que el profiler puede detectar son:
En la foto de pantalla de arriba, el profiler está mostrando la advertencia Static Collider.Move . La columna warning muestra que esta advertencia ha sido activada 12 veces en el frame actual. El término “Delayed Cost” (Costo de retraso) significa que aunque la entrada en el profiler puede mostrar un bajo costo (en este caso de 0.00ms) la acción puede activar una operación más cara más adelante.