Tema: profiling
-
Perfilado continuo en producción: perfiles de muestreo siempre activos y qué preguntas responden
El perfilado continuo toma perfiles de CPU y memoria de forma sistemática a lo largo del tiempo y los almacena como series etiquetadas, de modo que un equipo puede preguntar qué función consumió más CPU en toda la flota ayer o qué cambió entre dos versiones; los perfiladores por muestreo lo hacen lo bastante barato como para dejarlo activo permanentemente, y endpoints de runtime como /debug/pprof/ de Go o agentes eBPF suministran los perfiles.
-
Leer un flame graph: el ancho son muestras, el eje x no es tiempo
Un flame graph apila las pilas de llamadas muestreadas de modo que el ancho de cada cuadro es la proporción de muestras y la altura es la profundidad de la pila; el eje x está ordenado alfabéticamente, no por tiempo. Conviene leer las mesetas anchas en la parte superior como puntos calientes en CPU, los cuadros anchos con muchos hijos delgados como llamadores a los que conviene llamar con menor frecuencia, y recordar que un flame graph de CPU no puede mostrar la espera.
-
Perfilado de fotogramas en CPU y GPU: cómo encontrar el trabajo limitante
Usa presupuestos de tiempo por fotograma, líneas de tiempo de CPU y GPU y capturas controladas para identificar el cuello de botella de rendimiento de un juego sin confundir la espera con trabajo útil.
-
SRP Batcher de Unity: optimizar la preparación en la CPU sin confundirlo con el instancing
Explica la finalidad del SRP Batcher en el lado de la CPU, cómo comprobar la compatibilidad de materiales y shaders, y cómo medirlo por separado del GPU instancing.
-
Perfilado de CPU con perf: perf top, perf record -g, perf report y perf_event_paranoid
perf top ofrece un perfil en vivo inmediato; perf record -g guarda en disco un perfil con grafo de llamadas que perf report puede leer después. El parámetro perf_event_paranoid del kernel controla lo que puede hacer un usuario sin privilegios, y la resolución de símbolos requiere información de depuración coincidente para cada marco de la pila.
Legible por máquina: JSON