stringtranslate.com

tiempo (Unix)

En informática , timees 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 .

Descripción general

time(1)puede existir como un programa independiente (como en tiempo GNU ) o como un shell incorporado en la mayoría de los casos (por ejemplo, en sh , bash , tcsh o zsh ).

Tiempo del usuario versus tiempo del sistema

El tiempo total de 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 dedicaron a realizar 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 execo fork, está acumulando tiempo de CPU del sistema.

Tiempo real vs tiempo de CPU

El término "tiempo real" en este contexto se refiere al tiempo transcurrido en un reloj de pared , como si se usara un cronómetro. El tiempo total de CPU (tiempo de usuario + tiempo de sistema) puede ser mayor o menor que ese valor. Debido a que un programa puede pasar algún tiempo esperando y no ejecutándose 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 elementos secundarios 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 preceda cualquier comando con la palabra time, como por ejemplo:

$ tiempo ls  

Cuando se complete el comando, timeinformará cuánto tiempo llevó ejecutar el lscomando 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 dirección 103.102.166.224 El correo de wikipedia.org 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 Bash Shell 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 utilizar time -pel modo, que utiliza un formato de salida diferente, pero que es coherente con varias implementaciones:

$ tiempo  -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 GNU informan más que solo una hora de forma predeterminada:

$ /usr/bin/time  sha256sum  /bin/ls 12477deb0e25209768cbd79328f943a7ea8533ece70256cdea96fae0ae34d1cc /bin/ls 0.00user 0.00system 0:00.00elapsed 100%CPU (0avgtext+0avgdata 21 56maxresident)k 0entradas+0salidas (0mayor+96menor)fallos de página 0intercambios $

El formato de la salida para el tiempo GNU se puede ajustar usando TIMEuna variable de entorno y puede incluir información distinta al tiempo de ejecución (es decir, uso de memoria). Este comportamiento no está disponible en tiempos generales compatibles con POSIX ni cuando se ejecuta como time -p.

Generalmente se puede acceder a la documentación de esta época 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 mostrada por 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.

Intento

En un popular shell de Unix , Bash , timees una palabra clave especial que se puede colocar antes de una canalización (o comando único), que mide el tiempo de toda la canalización, no solo de un (primer) comando singular, y usa un formato predeterminado diferente, y coloca línea vacía antes de los tiempos de informe:

$ tiempo  secuencial 10000000 | baño -l 10000000    real 0m0.078s usuario 0m0.116s sistema 0m0.029s $

El tiempo reportado es un tiempo utilizado por ambos seqy wc -lsumado. El formato de la salida se puede ajustar usando TIMEFORMATvariables.

El tiempo no es una palabra clave incorporada, sino especial, y no puede tratarse como una función o comando. También ignora las redirecciones de canalización (incluso cuando se ejecuta como , a menos que todo Bash se ejecute en "modo POSIX").time -p

Se puede acceder a la documentación de este momento usando , o dentro de bash usando .man 1 bashhelp time

Ver también

Referencias