J'utilise time
certaines de mes commandes. Maintenant, pour faire la moyenne des mesures, je voudrais exécuter et chronométrer mes commandes un nombre spécifié de fois, et obtenir les résultats avec une moyenne calculée et un écart-type. Le résultat serait comme:
avgtime -n 100 my_command
real 0m5.388s stdev 0m0.068s
user 0m5.380s stdev 0m0.067s
sys 0m0.004s stdev 0m0.000s
Existe-t-il un outil UNIX pour cela? GNU / Linux en a-t-il un?
performance
time
benchmark
time-utility
Didier Trosset
la source
la source
os.system()
, entraîne la surcharge de l'appel / création d'un shell avec chaque commande. Probablement mieux utiliser subprocess.call ()Ce n'est pas exactement un outil UNIX ou GNU / Linux, mais vous pouvez utiliser tout à fait confortablement l' environnement logiciel R pour le calcul statistique . (Je ne trouve cependant rien de plus spécifique pour votre tâche .)
Modifier Comment pourrais - je en doute, il est bien sûr un paquet de référence pour
R
:rbenchmark
. Il enveloppe apparemmentsystem.time()
que vous pouvez également utiliser directement. Ou regardez ceci, une simple paire de fonctions chronomètre. Voir aussi "Exécution d'une commande système" @Rosetta Code (ou pas, c'est le cassystem("command")
.)Edit2 Je viens de voir cette question, "Mesurer le temps dans un script" dans la colonne "Associée" de droite, cela pourrait aussi être utilisé, c'est-à-dire prendre du temps, faire pour la boucle (
N
temps), prendre du temps à nouveau, calculer la durée, diviser parN
. (Encore plus facile, essayeztime ( for-loop )
, analysez sa sortie, divisez parN
).la source
Vous pouvez utiliser
R
pour calculer rapidement la moyenne, l'écart-type et d'autres valeurs intéressantes.Par exemple, vous pouvez utiliser l'heure GNU pour écrire plusieurs mesures d'exécution dans un fichier CSV:
Ensuite, vous pouvez générer les valeurs avec R comme ceci:
J'ai créé un petit script de référence qui fait également une jolie impression de la sortie R, par exemple:
la source
Option 1 - sqlite :
créer un tableau simple avec des colonnes de commande et de temps et visualiser avec des calculs d' agrégation appropriés . Après le chronométrage, ajoutez une ligne au tableau.
Avantages: définition d'une table plus simple par rapport à la solution 2.
Inconvénients: vous avez besoin (pensez-vous?) De la conservation des données.
Option 2 - rrdtool :
Définissez le fichier de base de données rrd, la définition des données et les fonctions d'agrégation. Après le chronométrage, alimentez la base de données avec
rrdtool update ...
.Avantages: vous pouvez facilement générer des graphiques avec
rrdtool graph ...
. Pas de problème de conservation des données (base de données round robin).Inconvénients: un peu plus difficile à définir la base de données rrd par rapport à une table / vue SQL simple
la source
Hyperfine est une autre option.
Exemple d'utilisation:
Voir la question connexe .
la source