utiliser valgrind pour savoir le temps(en secondes) passé dans chaque fonction
est-il de l'extension de valgrind, qui peut être utilisé dans la fenêtre de commande, qui m'aiderait à savoir le temps, en secondes, passé dans chaque fonction dans mon code C?
merci =)
- callgrind est valgrinds, outil de profilage pour les fins et les sorties de quelque chose comme machine de cycles par fonction, cependant, vous pouvez compiler votre programme à l'aide de profilage des drapeaux de gcc pour créer de profilage de sortie sans valgrind... callgrind: valgrind.org/docs/manual/cl-manual.html
- Ive essayé le manuel depuis hier, cependant je n'ai pas réussi à obtenir le "temps en s' passé dans chaque fonction. ai-je raté quelque chose?
- "dans chaque fonction" est ambiguë de deux façons: 1) à l'exclusion vs inclusive, et 2) total vs moyenne par invocation.
- il n'a pas d'importance tant que je suis la cohérence des données à travers chaque simulation et j'ai le temps dans la sec .
Vous devez vous connecter pour publier un commentaire.
Pour instruction machine de profilage utiliser valgrind est callgrind (aussi, cachegrind peut faire du cache et de la direction générale de prédiction de profilage qui est très agréable).
Pour les mesures de temps de l'utilisation google cpu profiler, il donne de meilleurs résultats que gprof. Vous pouvez définir la fréquence d'échantillonnage et il peut montrer la sortie d'un beau annoté graphe d'appel.
Valgrind n'est pas adapté pour la mesure du temps, comme l'exécution d'une application dans valgrind faussent les résultats (ralentissement, CPU vs I/O). Ainsi, valgrind, outil de profilage de callgrind ne pas mesurer le temps, mais les instructions du PROCESSEUR. Callgrind n'est utile que si le goulot d'étranglement est lié au PROCESSEUR (donc d'instructions du PROCESSEUR, alors instructions du PROCESSEUR mesurée sera en proportion du temps passé. Il n'est pas utile si lourd d'e/S ou de plusieurs processus sont impliqués. Ensuite, vous devez utiliser un échantillonnage profiler, comme gprof ou sysprof. Qui vérifie dans les intervalles de la fonction que le processus est en cours, avec moins de distorsions des résultats.
Utilisation cette lien. Je pense que quelque chose comme
Callgrind
devrait faire l'affaire.