/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:)

22
demandé sur Preexo 2013-06-06 14:09:01

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.

31
répondu devnull 2017-09-28 18:06:50

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.

6
répondu Infineight 2017-01-23 11:10:38