Pregunta

Shark en Mac OS X es una excelente herramienta para perfilar una aplicación en un sistema en ejecución ¿Hay herramientas similares para Linux?

OProfile parece que podría ser, ¿alguien lo usó?

¿Fue útil?

Solución

OProfile es una herramienta que realiza perfiles basados ??en muestreos de Tanto su aplicación como el sistema lo llama hace. Esto permite ver información detallada sobre dónde está gastando el tiempo. No tiene una GUI, pero hay varias interfaces que le permitirán procesar la información de las ejecuciones.

Lo he usado ampliamente, tanto para aplicaciones de escritorio como para sistemas integrados. Se necesita un poco de esfuerzo para interpretar los resultados, pero la salida del gráfico de llamadas es realmente útil aquí.

Otros consejos

Extendiendo otra respuesta, uso la opción 'callgrind' de valgrind ( http://valgrind.org ). Luego instale kcachegrind de KDE para obtener una interfaz GUI agradable.

Como tutorial de un maniquí, haz:

1) Compile su aplicación con información de depuración. Es una buena idea probar los perfiles con la optimización activada y desactivada, ya que con la optimización desactivada obtendrá más información, pero puede ser menos precisa (en particular, las pequeñas funciones tardarán más tiempo del que merecen.

2) Ejecutar con:

valgrind --tool=callgrind <name of your app> <your app's options>

Esto debería producir un archivo llamado 'callgrind.something', que puedes cargar en kcachegrind.

También puedes mirar:

valgrind --tool=cachegrind <name of your app> <your app's options>

Lo que te dará información sobre cómo interactúa tu aplicación con el caché de tu CPU.

Tenga en cuenta que si bien valgrind y shark parecen aplicaciones similares, funcionan de manera muy diferente. Cuando ejecutas una aplicación en valgrind, se ejecutará muchas veces más lento de lo normal (a menudo, más de 40 veces más lento), pero los resultados que obtienes son mucho más precisos que los de los tiburones. Tiendo a usar ambos, ¡así puedo obtener la mayor cantidad de información posible!

Probablemente pueda probar Valgrind ( http://valgrind.org/ ). Tienen herramientas de generación de perfiles de tiempo de ejecución y compilación.

Un poco tarde para responder a esta pregunta, pero la respuesta más cercana es Zoom . Algunos del equipo de Shark trabajaron en ello.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top