Estoy time
usando algunos de mis comandos. Ahora, para promediar las medidas, me gustaría ejecutar y cronometrar mis comandos un número específico de veces, y obtener los resultados con una media calculada y una desviación estándar. El resultado sería como:
avgtime -n 100 my_command
real 0m5.388s stdev 0m0.068s
user 0m5.380s stdev 0m0.067s
sys 0m0.004s stdev 0m0.000s
¿Existe una herramienta UNIX para esto? ¿GNU / Linux tiene uno?
performance
time
benchmark
time-utility
Didier Trosset
fuente
fuente
os.system()
, causa la sobrecarga de llamar / crear un shell con cada comando. Probablemente mejor usar subprocess.call ()No es exactamente una herramienta UNIX o GNU / Linux, pero podría usar con bastante comodidad el entorno de software R para computación estadística para esto. (Sin embargo, no puedo encontrar nada más específico para su tarea ).
Editar Cómo podría dudar de ello, hay, por supuesto, es un paquete de punto de referencia para
R
:rbenchmark
. Aparentemente envuelvesystem.time()
lo que también podría usar directamente. O eche un vistazo a esto, un simple par de funciones de cronómetro. También vea "Ejecutar un comando del sistema" @Rosetta Code (o no, essystem("command")
).Edit2 Acabo de ver esta pregunta, "Medir el tiempo dentro de un script" en la columna "Relacionada" de la derecha, esto también se podría usar, es decir, tomar tiempo, hacer for-loop (
N
tiempos), tomar tiempo nuevamente, calcular el intervalo de tiempo, dividir porN
. (Aún más fácil, intentetime ( for-loop )
, analice su salida, divida porN
).fuente
Puede usar
R
para calcular rápidamente la media, la desviación estándar y otros valores interesantes.Por ejemplo, puede usar el tiempo GNU para escribir varias mediciones de tiempo de ejecución en un archivo CSV:
Entonces puede generar los valores con R así:
He creado un pequeño script de referencia que también hace una impresión bonita de la salida R, por ejemplo:
fuente
Opción 1 - sqlite :
cree una tabla simple con columnas de comando y tiempo, y visualice con los cálculos de agregación adecuados . Después del tiempo, agregue una fila a la tabla.
Ventajas: más simple para definir una tabla en comparación con la solución 2.
Desventajas: necesita (¿le importa?) Preocuparse por la retención de datos.
Opción 2 - rrdtool :
Defina el archivo de base de datos rrd, la definición de datos y las funciones de agregación. Después del tiempo, alimente la base de datos con
rrdtool update ...
.Ventajas: puede generar fácilmente gráficos con
rrdtool graph ...
. No hay problema de retención de datos (base de datos round robin).Desventajas: un poco más difícil de definir la base de datos rrd en comparación con una simple tabla / vista SQL
fuente
Hiperfina es otra opción.
Uso de la muestra:
Ver pregunta relacionada .
fuente