En informática , time
es un comando en Unix y sistemas operativos similares a Unix. Se utiliza para determinar la duración de la ejecución de un comando en particular .
Desarrollador (es) | Varios desarrolladores comerciales y de código abierto |
---|---|
Sistema operativo | Unix , similar a Unix , Inferno |
Plataforma | Multiplataforma |
Tipo | Mando |
Descripción general
time(1)
puede existir como un programa independiente (como GNU time) o como un shell incorporado en la mayoría de los casos (por ejemplo, en sh , bash , tcsh o en zsh ).
Tiempo del usuario frente al tiempo del sistema
El tiempo total de la CPU es la combinación de la cantidad de tiempo que la CPU o las CPU dedicaron a realizar alguna acción para un programa y la cantidad de tiempo que pasaron realizando llamadas al sistema para el kernel en nombre del programa. Cuando un programa recorre una matriz, está acumulando tiempo de CPU del usuario. Por el contrario, cuando un programa ejecuta una llamada al sistema como exec
o fork
, está acumulando tiempo de CPU del sistema.
Tiempo real frente a tiempo de CPU
El término "tiempo real" en este contexto se refiere al tiempo transcurrido en el reloj de pared , como usar un cronómetro. El tiempo total de la CPU (tiempo del usuario + tiempo del sistema) puede ser mayor o menor que ese valor. Debido a que un programa puede pasar algún tiempo esperando y no ejecutarse en absoluto (ya sea en modo de usuario o en modo de sistema), el tiempo real puede ser mayor que el tiempo total de la CPU. Debido a que un programa puede bifurcar a los niños cuyos tiempos de CPU (tanto del usuario como del sistema) se agregan a los valores informados por el time
comando, pero en un sistema multinúcleo estas tareas se ejecutan en paralelo, el tiempo total de la CPU puede ser mayor que el tiempo real.
Uso
Para usar el comando, simplemente preceda cualquier comando por la palabra time
, como por ejemplo:
$ hora ls
Cuando se complete el comando, time
informará cuánto tiempo tomó ejecutar el ls
comando en 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 brindan estadísticas adicionales, como en este ejemplo:
$ time host wikipedia.org wikipedia.org tiene la dirección 103.102.166.224 wikipedia.org, el correo es manejado por 50 mx2001.wikimedia.org. El correo de wikipedia.org es manejado por 10 mx1001.wikimedia.org. host wikipedia.org 0.04s usuario 0.02s sistema 7% cpu 0.780 total $
time (ya sea un programa independiente o cuando el shell Bash se ejecuta en modo POSIX Y se invoca el tiempotime -p
) informa a la salida de error estándar.
tiempo -p
Los scripts portátiles deben usar el time -p
modo, que usa un formato de salida diferente, pero que es consistente con varias implementaciones:
$ time -p sha256sum / bin / ls 12477deb0e25209768cbd79328f943a7ea8533ece70256cdea96fae0ae34d1cc / bin / ls real 0.00 usuario 0.00 sys 0.00 $
Implementaciones
Tiempo GNU
Las versiones actuales de la hora de GNU, informan más que solo una hora de forma predeterminada:
$ / Usr / bin / tiempo sha256sum / bin / ls 12477deb0e25209768cbd79328f943a7ea8533ece70256cdea96fae0ae34d1cc / bin / ls 0.00user 0.00system 0: 00.00elapsed 100% de la CPU (0avgtext + 0avgdata 2156maxresident) k 0inputs + 0outputs (0major + 96minor) pagefaults 0swaps $
El formato de la salida para el tiempo GNU se puede ajustar mediante TIME
la variable de entorno y puede incluir información distinta del tiempo de ejecución (es decir, el uso de la memoria). Este comportamiento no está disponible en el tiempo de cumplimiento general de POSIX o cuando se ejecuta como time -p
.
Por lo general, se puede acceder a la documentación de este tiempo utilizando man 1 time
.
Método de operación
De acuerdo con el código fuente de la implementación GNU de time
, la mayor parte de la información mostrada por time
se deriva de la wait3
llamada al sistema. En los sistemas que no tienen una wait3
llamada que devuelva información de estado, times
se utiliza la llamada del sistema en su lugar.
Intento
En un popular shell Bash de Unix , time
es una palabra clave especial, que se puede poner antes de una canalización (o comando único), que mide el tiempo de toda la canalización, no solo un comando singular (primer), y usa un formato predeterminado diferente, y pone línea vacía antes de los tiempos de informe:
$ time seq 10000000 | wc -l 10000000real 0m0.078s usuario 0m0.116s sys 0m0.029s $
El tiempo informado es un tiempo utilizado por ambos seq
y wc -l
sumado. El formato de la salida se puede ajustar mediante TIMEFORMAT
variable.
El tiempo no es una palabra clave incorporada, sino una palabra clave especial, y no puede tratarse como una función o comando. También ignora las redirecciones de canalización (incluso cuando se ejecuta como time -p
, a menos que Bash completo se ejecute en "modo POSIX").
Se puede acceder a la documentación de este tiempo usando man 1 bash
, o dentro de bash usando help time
.
Ver también
- hora del sistema
- Proceso cron para programar trabajos para que se ejecuten en un momento determinado
- HORA (comando)
Referencias
- The Single UNIX Specification , Issue 7 from The Open Group : time a simple command - Commands & Utilities Reference,
- Manual de comandos generales de Inferno -
- Manual del usuario de Linux - Comandos de usuario : cronometra un comando simple o da uso de recursos -