utilisez valgrind pour connaître le temps (en secondes) passé dans chaque fonction

existe-t-il une extension de valgrind pouvant être utilisée dans la fenêtre de commande pour m’aider à connaître le temps, en secondes, passé dans chaque fonction de mon code C?

merci =)

Pour le profilage des instructions machine, utilisez callgrind de valgrind (également, cachegrind peut effectuer un profilage de prédiction de cache et de twig, ce qui est très pratique).

Pour les mesures de temps, utilisez le profileur cpu de google , il donne de bien meilleurs résultats que gprof. Vous pouvez définir la fréquence d’échantillonnage et afficher le résultat sous forme d’un graphique d’appel annoté.

Valgrind n’est pas adapté à la mesure du temps, car l’exécution d’une application dans valgrind déforme les résultats (ralentissement, CPU par rapport aux E / S). Ainsi, l’outil de profilage valgrind, callgrind, ne mesure pas le temps, mais les instructions du processeur. Callgrind n’est utile que si votre goulot d’étranglement est lié à la CPU (les instructions de la CPU importent donc), les instructions de la CPU mesurées seront proportionnelles au temps passé. Ce n’est pas utile si des E / S lourdes ou plusieurs processus sont impliqués. Ensuite, vous devez utiliser un profileur d’échantillonnage, tel que gprof ou sysprof. Cela vérifie à intervalles le fonctionnement du processus, avec des résultats moins déformés.

Utilisez ce lien. Je pense que quelque chose comme Callgrind devrait faire l’affaire.