Estoy buscando un perfilador de bajo impacto, os-independiente para el código de C++.Buscando un perfilador de C++ de bajo impacto
Cuando digo bajo impacto, me refiero a algo menos intrusivo que valgrind. Planeo usarlo en un entorno embebido basado en MIPS (por lo tanto, la os-independencia) y probé una versión portada de valgrind y cambió por completo las características de rendimiento (demasiado principio Heisenberg en el trabajo), así que no puedo seguir esa ruta. Sabemos que la velocidad del bus de memoria es un cuello de botella que probablemente explica por qué valgrind fue tan intrusivo.
He creado un tipo de generador de perfiles de cosecha propia basado en los puntos de control que me permite medir ciertas partes del código. Básicamente tengo que modificar el código (y volver a compilar) para establecer puntos de control en lugares estratégicos en el código. Luego, cuando se ejecuta, almacena el número de veces que se golpea cada punto de control y el tiempo desde que se golpeó el último punto de control. Luego, después de ejecutarlo, puedo volcar los puntos de control y para cada uno calcula: núm-hits, tiempo máximo, tiempo-mínimo, promedio de tiempo, etc.
Este generador de perfiles (lo llamé LowImpactProfiler) funciona bien, pero me pregunto si hay algo mejor por ahí.
Ive considered oProfile, que es un generador de perfiles de muestreo, pero como no estoy ejecutando Linux, creo que será muy difícil de implementar.
Si el objetivo es descubrir qué es lo que en el código está causando lentitud y podría mejorarse para obtener un mejor rendimiento * [podría intentarlo] (http://stackoverflow.com/questions/375913/what-can -i-use-to-profile-c-code-in-linux/378024 # 378024). * –
@Brady: * Heisenburger *? ¡No sabía acerca de esto! –
@Matthieu: ¿Nunca has escuchado sobre eso? Es una hamburguesa cuántica. –