Respuestas:
Agregue time
antes del comando que desea medir. Por ejemplo: time ls
.
La salida se verá así:
real 0m0.606s
user 0m0.000s
sys 0m0.002s
Explicación sobre real
, user
y sys
(de man time
):
real
: Tiempo real transcurrido (reloj de pared) utilizado por el proceso, en segundos.user
: Número total de segundos de CPU que el proceso usó directamente (en modo de usuario), en segundos.sys
: Número total de segundos de CPU utilizados por el sistema en nombre del proceso (en modo kernel), en segundos.sudo apt-get install time
si está utilizando un shell donde time
no está integrado.
time
incorporado, pero man time
sería sobre un ejecutable (como /usr/bin/time
, desde el time
paquete), y su salida sería diferente. También en Bash, puede help time
solicitar ayuda con la construcción.
Para una medición delta línea por línea, pruebe gnomon .
Es una utilidad de línea de comandos, un poco como ts de moreutils, para anteponer información de marca de tiempo a la salida estándar de otro comando. Útil para procesos de larga duración en los que desea un registro histórico de lo que lleva tanto tiempo.
Colocar cualquier cosa en gnomon antepondrá una marca de tiempo a cada línea, indicando cuánto tiempo fue esa última línea en el búfer, es decir, cuánto tiempo tardó en aparecer la siguiente. Por defecto, gnomon mostrará los segundos transcurridos entre cada línea, pero eso es configurable.
sudo npm i gnomon -g
si tiene npm
. No estoy seguro de qué tan bien funciona contra las líneas de "progreso" usando '\ r' (permaneciendo en la misma línea): en ese caso me gustaría contarlo todo como una línea larga, no separadas.
Puedes usar time
:
time ls -R
date +"%T" && cp -r ./file /destination/folder/here && date +"%T"
Ejecutar este comando en la terminal le dará el tiempo total para hacer frente a un archivo
find
comando, sin el 2>/dev/null
redireccionamiento, proporciona mensajes abundantes Permission denied
. Sin embargo, agregar 2>/dev/null
a ese comando rompe la time
parte de ese comando. Lo siguiente proporciona un buen compromiso: START="$(date +"%s")" && find 2>/dev/null / -path /mnt -prune -o -name "*libname-server-2.a*" -print; END="$(date +"%s")"; TIME="$((END - START))"; printf 'find command took %s sec\n' "$TIME"
dando (por ejemplo) /usr/lib/libname-server-2.a find command took 3 sec
como la única salida.
time sudo find / -path /mnt -prune -o -name "*libname-server-2.a*" -print
(es decir, como sudo
), evitando esas numerosas Permission denied
advertencias.
Ocasionalmente me encuentro necesitando un cronómetro para contar cuánto tiempo lleva una acción como el arranque de mi aplicación, en cuyo caso muchas de las soluciones aquí no son útiles.
Para esto me gusta usar sw .
wget -q -O - http://git.io/sinister | sh -s -- -u https://raw.githubusercontent.com/coryfklein/sw/master/sw
sw
- start a stopwatch from 0, save start time in ~/.sw
sw [-r|--resume]
- start a stopwatch from the last saved start time (or current time if no last saved start time exists)
- "-r" stands for --resume
time -v command
-v
da más información
real
,user
ysys
los horarios son que este comando devuelve?