RésuméComment interpréter les temps de référence tels que rapportés par le module Perl's Benchmark?
Lorsque j'exécute un programme très simple en utilisant l'utilitaire Perl's Benchmark. Je reçois des valeurs qui ne sont pas (apparaissant comme) millisecondes ou nanosecondes. Les données de référence renvoyées ne me sont pas utiles car je ne sais pas comment l'interpréter.
Exemple:
use Benchmark;
my $start = Benchmark->new;
print "foo!";
my $end = Benchmark->new;
my $diff = timediff($end, $start);
print timestr($diff);
Retours: foo! 0 wallclock secs (0.00 usr + 0.00 sys = 0.00 CPU)
Qu'est-ce que les différents champs signifient: secondes wallclock, Util, Sys, CPU? Peuvent-ils être extrapolés pour obtenir une valeur de milliseconde? À l'heure actuelle, pour mon analyse comparative, tout ce dont j'ai besoin est d'un temps réel pour une seule exécution, sans avoir besoin de prendre en compte certains des aspects les plus ésotériques des tests de performance.
Vous voulez vraiment, vraiment "utiliser Benchmark ': hireswallclock'" ou éviter d'utiliser le module de cette façon en premier lieu. Le temps "wallclock" est votre "temps réel". Essayez de comparer des morceaux de code avec des temps d'exécution macroscopiques. Si ce n'est pas possible parce que la boucle supplémentaire fausse trop le résultat, alors vous optimisez votre micro et nous savons tous que vous ne devriez pas faire cela. – tsee
Courir quelque chose ne va pas vous donner un bon résultat. Vous devez exécuter votre opération des milliers de fois pour obtenir des données réelles (moyennées) utiles. – Ether