En informática , timees un comando en sistemas operativos Unix y similares a Unix . Se utiliza para determinar la duración de la ejecución de un comando en particular .
Descripción general
time(1)puede existir como un programa independiente (como GNU time) o como un programa integrado del shell en la mayoría de los casos (por ejemplo, en sh , bash , tcsh o en zsh ).
Tiempo de usuario frente a tiempo del sistema
El tiempo total de CPU es la suma del tiempo que la CPU o las CPU dedicaron a realizar alguna acción para un programa y el tiempo que dedicaron a realizar llamadas al sistema para el núcleo en nombre del programa. Cuando un programa recorre un array, acumula tiempo de CPU de usuario. Por el contrario, cuando un programa ejecuta una llamada al sistema, como exec`or` fork, acumula tiempo de CPU del sistema.
Tiempo real frente a tiempo de CPU
En este contexto, el término "tiempo real" se refiere al tiempo transcurrido en el reloj , como si se utilizara un cronómetro. El tiempo total de CPU (tiempo de usuario + tiempo del sistema) puede ser mayor o menor que ese valor. Dado que un programa puede pasar algún tiempo esperando sin ejecutarse (ya sea en modo de usuario o en modo de sistema), el tiempo real puede ser mayor que el tiempo total de CPU. Además, como un programa puede crear procesos hijos cuyos tiempos de CPU (tanto de usuario como de sistema) se suman a los valores informados por el timecomando, pero en un sistema multinúcleo estas tareas se ejecutan en paralelo, el tiempo total de CPU puede ser mayor que el tiempo real.
Uso
Para usar el comando, simplemente hay que anteponer la palabra time, como por ejemplo:
$ tiempo ls Cuando el comando finalice, timese informará cuánto tiempo tardó en ejecutarse lsen términos de tiempo de CPU del usuario , tiempo de CPU del sistema y tiempo real. El formato de salida varía entre las diferentes versiones del comando, y algunas proporcionan estadísticas adicionales, como en este ejemplo:
$ tiempo host wikipedia.org wikipedia.org tiene la dirección 103.102.166.224 wikipedia.org correo es manejado por 50 mx2001.wikimedia.org. wikipedia.org correo es manejado por 10 mx1001.wikimedia.org. host wikipedia.org 0.04s usuario 0.02s sistema 7% cpu 0.780 total $Un cronómetro sencillo ( Ctrl+d para detener):
$ tiempo de lecturareal 0m9.760s usuario 0m0.000s sistema 0m0.000s $time (ya sea un programa independiente o cuando el shell Bash se ejecuta en modo POSIX Y time se invoca como ) informa a la salida de error estándar.time -p
tiempo -p
Los scripts portátiles deben usar time -pel modo, que utiliza un formato de salida diferente, pero que es consistente con varias implementaciones:
$ time -p sha256sum /bin/ls 12477deb0e25209768cbd79328f943a7ea8533ece70256cdea96fae0ae34d1cc /bin/ls real 0.00 user 0.00 sys 0.00 $Implementaciones
Dependiendo del intérprete de comandos, el comando ` time` se trata por defecto como una palabra clave del intérprete, un comando integrado o un ejecutable binario. También se puede forzar el uso del binario haciendo referencia al archivo directamente, por ejemplo: `/usr/bin/time anyCommand`. Para determinar el comportamiento predeterminado, ejecute el comando: `. [ 1 ]`type time
Tiempo GNU
Las versiones actuales de GNU time informan, por defecto, más que solo la hora:
$ /usr/bin/time sha256sum /bin/ls 12477deb0e25209768cbd79328f943a7ea8533ece70256cdea96fae0ae34d1cc /bin/ls 0.00user 0.00system 0:00.00elapsed 100%CPU (0avgtext+0avgdata 2156maxresident)k 0inputs+0outputs (0major+96minor)pagefaults 0swaps $El formato de salida para GNU time se puede ajustar mediante TIMEuna variable de entorno y puede incluir información distinta al tiempo de ejecución (por ejemplo, el uso de memoria). Este comportamiento no está disponible en el formato de tiempo compatible con POSIX general ni al ejecutar como time -p.
La versión binaria envía su salida a stderr en lugar de stdout , pero esto se puede anular utilizando las banderas o .-o filename--output filename
La documentación de esta época generalmente se puede consultar mediante .man 1 time
Método de operación
Según el código fuente de la implementación GNU de time, la mayor parte de la información que muestra timese deriva de la wait3llamada al sistema. En los sistemas que no tienen una wait3llamada que devuelva información de estado, timesse utiliza la llamada al sistema en su lugar.
Intento
En un intérprete de comandos Unix popular, Bash , timeexiste una palabra clave especial que se puede colocar antes de una tubería (o un solo comando) para medir el tiempo de toda la tubería, no solo de un comando singular (el primero), y utiliza un formato predeterminado diferente, y coloca una línea vacía antes de informar los tiempos:
$ time seq 10000000 | wc -l 10000000real 0m0.078s usuario 0m0.116s sistema 0m0.029s $El tiempo reportado es el tiempo empleado por ambos seqy wc -lsumado. El formato de salida se puede ajustar mediante TIMEFORMATuna variable.
Cuando el tiempo se trata como una palabra clave especial, también ignora las redirecciones de canalización incluso cuando se ejecuta como . La solución alternativa es encerrar el grupo de comandos entre llaves, es decir: [ 2 ] Alternativamente, se podría configurar el intérprete de comandos bash para que se ejecute en "modo POSIX" puede forzar al intérprete de comandos a ignorar la implementación de la palabra clave reservada si una bandera opcional sigue al comando time . [ 3 ]time -p{ time anyCommand; } 2> timing.Output
Se puede acceder a la documentación del tiempo usando , o dentro del propio bash usando .man 1 bashhelp time
Véase también
- Hora del sistema
- Proceso Cron para programar tareas que se ejecutarán en un momento determinado.
- TIEMPO (comando)
Referencias
- ↑ "Comando de hora de Linux" . Linuxize . Archivado del original el 22 de julio de 2025. Recuperado el 24 de julio de 2025 .
- ↑ Gökmen, Burak (16 de junio de 2025). "Redireccionando la salida del comando time" . Baeldung. Archivado del original el 13 de septiembre de 2025. Recuperado el 24 de julio de 2025 .
- ↑ "Modo Bash POSIX" . gnu.or. 26 de julio de 2025. Archivado del original el 13 de junio de 2023. Consultado el 28 de julio de 2025 .
- : time un comando simple – Referencia de Shell y Utilidades, La Especificación Única de UNIX , Versión 5 de The Open Group
- – Manual de comandos generales de Inferno
- : tiempo un comando simple o dar uso de recursos – Manual de usuario de Linux – Comandos de usuario de Manned.org
- Utilidades Unix SUS2008
- Software relacionado con la gestión de procesos y tareas en Unix
- Comandos de Inferno (sistema operativo)