/usr/bin / time --format sortie Temps écoulé en millisecondes
j'utilise le programme /usr/bin/time pour mesurer le temps d'une commande. avec le paramètre -- format, je peux formater la sortie. par exemple
/usr/bin/time -f "%e" ls
est-il un moyen de sortie d'une plus grande précision des secondes? ou juste des millisecondes, pas des secondes?
Dans le manuel de /usr/bin/heure il est dit quelque chose à propos de secondes, mais peut-être il ya un moyen pour que quelqu'un peut m'aider... merci!
EDIT : Je connais la commande bash " time "qui utilise le format de la variable d'environnement"TIMEFORMAT". désolé, mais je ne veux pas changer cela env-var... cela me semble risqué, la solution devrait être quelque chose qui ne change pas du tout le système d'exécution:)
2 réponses
une possibilité est d'utiliser la commande date
:
ts=$(date +%s%N) ; my_command ; tt=$((($(date +%s%N) - $ts)/1000000)) ; echo "Time taken: $tt milliseconds"
%N
devrait retourner nanosecondes , et 1 milliseconde est de 1000000 nanosecondes, donc par division retournerait le temps nécessaire pour exécuter my_command
en millisecondes.
NOTE que le %N
n'est pas supporté sur tous les systèmes, mais la plupart d'entre eux.
pour plus de commodité j'ai fait la réponse de devnull dans un script (Je l'ai appelé milliseconde-time).
#!/bin/bash
ts=$(date +%s%N) ; $@ ; tt=$((($(date +%s%N) - $ts)/1000000)) ; echo "Time taken: $tt milliseconds"
j'ai mis le script dans /usr/local/bin
.
Lui a donné d'exécuter les droits chmod +x /usr/local/bin/millisecond-time
.
Maintenant je peux l'utiliser comme ceci: millisecond-time my_command
P. S. Ce serait un commentaire si j'avais le représentant.