Bonjour,
J'essaie de me renseigner sur les meilleures pratiques permettant de chronométrer des morceaux de code afin de comparer l'efficacité de différentes approches. Pour ce faire, il semble naturel d'encapsuler le bout de code dans une fonction et de mesurer la différence entre le temps où on entre dans la fonction et le temps où on en sort. En recherchant de l'information à ce sujet sur Google, il semble que le problème est plus compliqué qu'il n'y paraìt. En effet, il semble que plusieurs fonctions/outils soient disponibles selon le système d'exploitation (limitons-nous à Windows et Linux), le langage (les outils disponibles dépendent du langage : vos commentaires sur C/C++, Java, C# et Python m'intéressent), la précision souhaitée (secondes, millisecondes, etc).
Par ailleurs, les résultats obtenus dépendent fortement de l'environnement dans lequel s'exécute le programme (processus concurrents en train de s'exécuter sur le système). Quels conseils donneriez-vous à un débutant afin qu'il puisse réaliser les mesures les plus significatives et reproductibles possibles ?
Je m'intéresse donc aux questions suivantes:
(0) Dans quel langage programmez-vous ?
(1) Quel système d'exploitation ?
(2) Quels outils, fonctions, ou bouts de code utilisez-vous pour chronométrer ou profiler vos morceaux de code/applications ?
3) Comment pratiquez-vous pour obtenir une mesure significative et reproductible du temps d'exécution d'un morceau de code ? (je suis à l'écoute des meilleures pratiques dans ce domaine)
Merci d'avance pour vos remarques que j'attends avec impatience.
Thierry
Partager