it-swarm-eu.dev

Comment chronométrer une commande spécifique?

(L'équivalent Linux de TimeThis.exe)

Quelque chose comme:

timethis wget foo.com
Receiving foo.com  
...

wget foo.com took 3 seconds.
71
ripper234

Essayez simplement time au lieu de timethis.

Bien que sachez qu'il existe souvent une version intégrée de Shell et une version binaire, qui donnera des résultats dans différents formats:

$ time wget -q -O /dev/null https://unix.stackexchange.com/

real    0m0.178s
user    0m0.003s
sys     0m0.005s

contre

$ \time wget -q -O /dev/null https://unix.stackexchange.com/
0.00user 0.00system 0:00.17elapsed 4%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+613minor)pagefaults 0swaps

Contrairement à votre programme "timethis", vous obtenez trois valeurs en retour. C'est décomposé en Qu'est-ce que "l'heure système" lors de l'utilisation de "l'heure" en ligne de commande , mais en bref: réel signifie "horloge murale", tandis que l'utilisateur et sys affichent l'horloge du processeur temps, réparti entre le code normal et les appels système.

103
mattdm

En utilisant l'exécutable time au lieu du shell intégré, vous pouvez spécifier le format et les valeurs de sortie. Par exemple. obtenir le temps réel écoulé avec le nom de la commande et les paramètres

/usr/bin/time --format='%C took %e seconds' sleep 3
sleep 3 took 3.00 seconds

Notez que vous devez spécifier le chemin pour time, sinon vous utiliserez par défaut le shell intégré.

26
forcefsck

@galois: Les différents shells ont une poignée de commandes "intégrées" qui ont priorité sur tout ce qui se trouve sur le chemin. Ceci est normalement avantageux; les fonctions intégrées ont tendance à s'exécuter plus rapidement (car elles n'appellent pas un fichier externe) et donnent généralement le résultat souhaité (c'est-à-dire que dans le cas de la commande de temps, vous ne vous souciez normalement pas de la version que vous utilisez, sauf si vous souhaitez utiliser le " --format ").

Donc, "temps" sans aucun caractère spécial (comme /) pour le faire ressembler à un chemin finira par exécuter le intégré, quel que soit votre PATH.

Pour forcer le shell à utiliser la commande d'heure externe, vous devez fournir le chemin

0
Tom Payerle