utilice valgrind para conocer el tiempo (en segundos) empleado en cada función


¿Hay alguna extensión de valgrind, que se pueda usar en la ventana de comandos, que me ayude a saber el tiempo, en segundos, empleado en cada función en mi código C?

Gracias=)

Author: Syntax_Error, 2011-07-12

3 answers

Para el perfilado de instrucciones de máquina use el callgrind de valgrind (también, cachegrind puede hacer el perfilado de predicción de ramificación y caché, lo cual es bastante bueno).

Para mediciones de tiempo use el generador de perfiles de cpu de Google, da mejores resultados que gprof. Puede establecer la frecuencia de muestreo y puede mostrar la salida como un agradable gráfico de llamadas anotadas.

 22
Author: Karoly Horvath,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-04-25 01:01:57

Valgrind no es adecuado para medir el tiempo, ya que ejecutar una aplicación en valgrind distorsiona los resultados (ralentización, CPU vs.E/S). Por lo tanto, la herramienta de creación de perfiles de valgrind callgrind no mide el tiempo, sino las instrucciones de la CPU. Callgrind solo es útil si su cuello de botella está limitado a la CPU (por lo tanto, las instrucciones de la CPU importan), entonces las instrucciones de la CPU medidas serán proporcionales al tiempo empleado. No es útil si están involucradas E/S pesadas o múltiples procesos. A continuación, debe utilizar un generador de perfiles de muestreo, como gprof o sysprof. Que comprueba los intervalos en los que funciona el proceso, con resultados menos distorsionados.

 14
Author: Frank Osterfeld,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-07-12 12:51:05

Usa este enlace. Creo que algo como Callgrind debería hacer el truco.

 3
Author: Sriram,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 11:46:57