my $start_time = [Time::HiRes::gettimeofday()];
my $diff = Time::HiRes::tv_interval($start_time);
print "\n\n$diff\n";
Répondre
Eventuellement. Cela dépend de ce que vous entendez par "mieux".
Si vous demandez une «meilleure» solution en termes de fonctionnalité, alors c'est à peu près tout.
Si vous demandez un « meilleur » au sens de « moins maladroite » notation, sachez alors que, dans un contexte scalaire, Time::HiRes::gettimeofday()
retournera secondes flottant depuis l'époque (avec la partie décimale représentant microsecondes), juste comme Time::HiRes::time()
(ce qui est un bon remplacement de drop-in pour la fonction standard time()
.)
my $start = Time::HiRes::gettimeofday();
...
my $end = Time::HiRes::gettimeofday();
printf("%.2f\n", $end - $start);
ou:
use Time::HiRes qw(time);
my $start = time();
...
my $end = time();
printf("%.2f\n", $end - $start);
C'est à peu près tout - cela vous donnera une haute résolution du temps écoulé. À moins, bien sûr, que quelqu'un ne se mêle de l'horloge du système.
Cela dépend de ce que vous êtes Faire. Si vous voulez mesurer l'heure de l'horloge murale (la durée réelle écoulée), vous ne pouvez pas vous améliorer. Si vous voulez mesurer combien de temps l'ordinateur a fait quelque chose, alors vous pouvez regarder la fonction times
ou la commande time
. La fonction times
en Perl renvoie une liste du temps accumulé pour ce processus dans votre code et le code de tous les modules que vous utilisez, ce processus dans les appels système, tous les enfants du code utilisateur de ce processus et tous les enfants de ce processus. dans les appels système.
#!/usr/bin/perl
use strict;
use warnings;
use Time::HiRes;
my $start_time = [Time::HiRes::gettimeofday()];
.
.
.
my ($user, $system, $child_user, $child_system) = times;
print "wall clock time was ", Time::HiRes::tv_interval($start_time), "\n",
"user time for $$ was $user\n",
"system time for $$ was $system\n",
"user time for all children was $child_user\n",
"system time for all children was $child_system\n";
La commande time
sous UNIX est similaire à la fonction. Vous exécutez une commande comme
time ./script.pl
et sorties quelque chose comme ça
real 0m0.692s
user 0m0.019s
sys 0m0.109s
où est le temps réel d'horloge murale et l'utilisateur et sys sont les mêmes que l'utilisateur et le système ci-dessus. La commande time
est plus facile à utiliser pour un humain, mais la fonction times
vous donne plus d'informations et est plus facile à intégrer dans un programme informatique (en plus elle a l'avantage de produire des résultats pendant qu'un programme est en cours d'exécution).
Oh, j'ai oublié de mentionner $^T
. Cette variable contient l'heure de début du programme en quelques secondes depuis l'époque, donc si vous ne vous préoccupez une granularité de secondes vous pouvez simplement dire
END { print "The program ran for ", time() - $^T, " seconds\n" }
près du haut de votre programme.
Ceci est utile pour connaître les horaires en service, la granularité d'une seconde:
Au début ...
$debugtimer = time;
$debugstr = "";
... partout et partout où vous aimez ...
kerchunk("message") # message is short description of location in code
... la fin du programme ...
print "timings: $debugstr";
... et avec vos sous-marins:
sub kerchunk
{
my ($msg) = shift;
my $pertock = time;
my $kch = abs($debugtimer - $pertock);
$debugstr .= "Elapsed at $msg: $kch<br>\n";
}
- 1. Déterminer le temps écoulé
- 2. calculer le temps écoulé en flash
- 3. Calcul du temps écoulé
- 4. Obtenir le temps écoulé (Objective-c)
- 5. Comment obtenir le temps écoulé en millisecondes dans Ruby?
- 6. En C#, quel est le meilleur moyen de déterminer si une base de données est opérationnelle?
- 7. Manipulation et stockage du temps écoulé
- 8. Comment comparer le temps écoulé entre les champs datetime?
- 9. Lorsque l'analyse comparative ce qui rendrait le temps CPU écoulé moins que le temps CPU utilisateur
- 10. Quel est le meilleur moyen de récupérer RSS, en temps réel ou presque?
- 11. Comment déterminer le temps sur le site en Javascript?
- 12. Existe-t-il un meilleur moyen de déterminer la bonne taille pour un UITableViewCell?
- 13. Meilleur moyen de déterminer si le fichier * .doc est RTF avec Java ou ColdFusion
- 14. Meilleur moyen de gérer le défilement coûteux en JavaScript?
- 15. Quel est le meilleur moyen de gérer QUERY_STRING en PHP?
- 16. Quel est le meilleur moyen de conserver un graphe d'objet Entity Framework en mémoire?
- 17. Meilleur moyen de rechercher
- 18. Quel est le meilleur moyen de fermer un thread WCF?
- 19. Quel est le meilleur moyen ou outil pour montrer combien de temps une opération de ligne de commande prend?
- 20. Le meilleur moyen de multi-thread?
- 21. Quel est le meilleur moyen de faire throbber en C#?
- 22. Un moyen facile de déterminer l'année bissextile en rubis?
- 23. Meilleur moyen de commencer le développement Mac
- 24. Meilleur moyen de télécharger un fichier binaire?
- 25. Quel est le meilleur moyen de redimensionner un objet BitmapData?
- 26. Comment mesurer le temps écoulé de HttpWebResponse réel par rapport à la transmission de HttpWebRequest?
- 27. Est-ce le meilleur moyen en C# de convertir une chaîne délimitée en un tableau int?
- 28. Le meilleur moyen d'organiser cette structure?
- 29. meilleur moyen d'écrire un téléchargement FTP interrogé en C#
- 30. Existe-t-il un meilleur moyen de référencer un type?
mieux dans quel sens? – ysth