¿Cuál es el mejor generador de perfiles gratis de C ++ para Windows?

Estoy buscando un perfilador para encontrar el cuello de botella en mi código C ++. Me gustaría encontrar una herramienta de creación de perfiles gratuita, no intrusiva y buena. Soy desarrollador de juegos y utilizo PIX para Xbox 360 y lo encontré muy bien, pero no es gratis. Conozco el Intel VTune , pero tampoco es gratis.

CodeXL ahora ha reemplazado al analista de código AMD de End Of Line y ambos son gratuitos, pero no tan avanzados como VTune. También hay Sleepy , que es muy simple, pero hace el trabajo en muchos casos.

Very Sleepy es un perfilador de CPU C / C ++ para sistemas Windows (gratis).
CppCheck es un perfilador de CPU C / C ++ estático para sistemas Windows (gratis).

Proffy es genial: http://pauldoo.com/proffy/

Descargo de responsabilidad: escribí esto.

Existe un perfilador de instrumentación (función precisa) para MS VC 7.1 y superior llamado MicroProfiler. Puede obtenerlo aquí (x64) o aquí (x86) . No requiere modificaciones ni adiciones a su código y puede mostrar estadísticas de función con llamantes y llamadas en tiempo real sin la necesidad de cerrar la aplicación / detener el proceso de creación de perfiles.

Se integra con VisualStudio, por lo que puede habilitar / deshabilitar fácilmente la creación de perfiles para un proyecto. También es posible instalarlo en la máquina limpia, solo necesita ubicar la información del símbolo junto con el ejecutable perfilado.

Esta herramienta es útil cuando la aproximación estadística de los perfiles de muestreo como Very Sleepy no es suficiente.

La comparación aproximada muestra que supera a AQTime (cuando se invoca en instrumentación, ejecución a nivel de función). El siguiente progtwig (optimización completa, inlining desactivado) se ejecuta tres veces más rápido con los resultados de visualización de microperfil en tiempo real, que con AQTime simplemente recostackndo estadísticas:

void f() { srand(time(0)); vector v(300000); generate_n(v.begin(), v.size(), &random); sort(v.begin(), v.end()); sort(v.rbegin(), v.rend()); sort(v.begin(), v.end()); sort(v.rbegin(), v.rend()); } 

Microsoft tiene el Windows Performance Toolkit .

Requiere Windows Vista, Windows Server 2008 o Windows 7.

Una nueva adición es Shiny .

1.

Recomiendo Windows Performance Toolkit (WPT) o XPERF

La herramienta de línea de comandos de línea de comandos xperf registra registros de eventos para Windows (ETW) que se pueden analizar utilizando la herramienta GUI xperfview.

El uso de la línea de comando stacktrace ha demostrado ser una herramienta invaluable para mi empresa, ya que perfila y soluciona los cuellos de botella. Una de las cosas más convincentes es que el WPT se puede instalar en cualquier entorno incluso en el venerable Windows XP .

En Windows 8, el analizador de rendimiento de Windows lleva xperf a un nivel aún más alto.

Los números duros y las estadísticas proporcionadas en los registros de ETW son incomparables en detalle a excepción de Visual Studio Profiler (2010/2012), que también es genial pero no gratuito AFAIK.

Si nunca has usado xperf … no sabes lo que te falta

Uso AQ Time, es una de las mejores herramientas de creación de perfiles que he usado. No es gratuito, pero puede obtener una versión de prueba de 30 días, por lo que si planea optimizar y perfilar solo un proyecto y 30 días son suficientes para usted, le recomendaría usar esta aplicación. ( http://www.automatedqa.com/downloads/aqtime/index.asp )

Por favor prueba mi generador de perfiles, llamado cRunWatch. Solo se trata de dos archivos, por lo que es fácil de integrar con sus proyectos, y requiere agregar exactamente una línea para instrumentar un fragmento de código.

http://ravenspoint.wordpress.com/2010/06/16/timing/

Requiere la biblioteca de Boost.

He usado “TrueTime” como parte de la suite DevPartner de Compuware durante años. Hay una [versión gratuita] (puede probar Compuware DevPartner Performance Analysis Community Edition.) Disponible.

Utilicé a Luke Stackwalker e hizo el trabajo para mi proyecto de Visual Studio.

Otros proyectos interesantes son:

  • Proffy
  • Dyninst

Yo uso VSPerfMon, que es el Analizador de Visual Studio StandAlone. Escribí una herramienta de GUI para ayudarme a ejecutarlo y mirar los resultados.

http://code.google.com/p/vsptree/

Puedes usar EmbeddedProfiler, es gratis tanto para Linux como para Windwos.

El generador de perfiles es intrusivo (por funcionalidad) pero no requiere modificaciones de código. Simplemente agregue un indicador de comstackdor específico (-finstrument-functios para gcc / MinGW o / GH para MSVC) y vincule la biblioteca del generador de perfiles. Puede proporcionarle un árbol de llamadas completo o simplemente una lista de funciones útiles. Tiene su propia GUI de analizador.