Time

Comando time
Información sobre la plantilla
Uptime.png
Concepto:Temporiza una orden sencilla o devuelve la utilización de recursos.

Comando time. Para medir de forma precisa el tiempo que tarda en ejecutarse cierta operación. Esta función ofrece teóricamente una precisión de microsegundos (0,001 milisegundos).

Antecedentes

UNIX es uno de los sistemas operativos más populares del mundo debido a su extenso soporte y distribución. Originalmente fue desarrollado como sistema multitarea con tiempo compartido para miniordenadores y mainframes a mediados de los 1970, y desde entonces se ha convertido en uno de los sistemas más utilizados a pesar de su, ocasionalmente, confusa interfaz con el usuario y el problema de su estandarización. Linux es una versión de UNIX de libre distribución, inicialmente desarrollada por Linus Torvalds en la Universidad de Helsinki, en Finlandia. Fue desarrollado con la ayuda de muchos programadores y expertos de UNIX a lo largo y ancho del mundo, gracias a la presencia de Internet. Cualquier habitante del planeta puede acceder a Linux y desarrollar nuevos módulos o cambiarlo a su gusto. En este sistema operativo los comandos son una parte muy importante cuando se desea entrar en la administración y programación de este sistema operativo. Existe una inmensa cantidad de comandos ya sean para ayuda, para manejo de archivos y directorios, para manejo de usuarios, de procesos, de disco, de sistema, de red, de impresoras, etc. El propósito de este artículo es darle a conocer a usted querido usuario la importancia, uso y diferentes aplicaciones del comando time.

Sinopsis

      time [opciones] orden [argumentos...]

Descripción

El Comando time ejecuta el programa orden con los argumentos suministrados. Cuando orden finaliza, time escribe un mensaje en la salida estándar devolviendo estadísticas temporales sobre la ejecución de este programa. Estas estadísticas están compuestas por (i) el tiempo real transcurrido entre la llamada y la finalización de orden , (ii) el tiempo de usuario del procesador (la suma de los valores tms_utime y tms_cutime en un struct tms tal y como devuelve times[1]), y (iii) el tiempo de sistema del procesador (la suma de los valores tms_stime y tms_cstime en un struct tms tal y como devuelve times [1]).

Opciones

        -p     

Cuando se use la localización POSIX, usar el formato tradicional preciso "real %f\nuser %f\nsys %f\n"(con números en segundos) donde el número de decimales en la salida de %f está sin especificar pero es suficiente para expresar la precisión del flanco de reloj, y al menos uno.

Entorno

Se utilizan las variables LANG, LC_ALL, LC_CTYPE, LC_MESSAGES, LC_NUMERIC, NLSPATH y PATH. La última para buscar orden. El resto para el texto y el formato de la salida.

Estado de Salida

Si se invocó orden , el estado de salida será el de orden. En otro caso, es 127 si orden no se pudo encontrar, 126 si se pudo encontrar pero no pudo invocarse, y algún otro valor distinto de cero (1-125) si ocurrió algun otro error.

Versión GNU

A continuación, una descripción de la versión 1.7 de GNU de time. A pesar del nombre de la utilidad, GNU hace que devuelva gran cantidad de información útil, no sólo sobre el tiempo utilizado, sino además sobre otros recursos como memoria, llamadas E/S o IPC (si están disponibles). La salida se formatea utilizando una cadena de formato que se puede especificar utilizando la opción -f o la variable de entorno TIME.

La cadena de formato por defecto es

         %Uusuario %Ssistema %Etranscurrido %PCPU (%Xtexto+%Ddatos %Mmax)k
         %Ientradas+%Osalidas (%Fprincipal+%Rmenor)faltas de página %Wintercambios

Cuando se indica la opción -p, se usa el formato de salida transportable

         real %e
         user %U
         sys %S

La cadena de formato

El formato se interpreta en el modo usual de printf. Los caracteres habituales se copian directamente, tabulación, nueva línea y barra invertida se escapan usando \t, \n y \\, el signo de porcentaje se representa por  %%, y de otra manera  % indica una conversión. El programa time añadirá siempre una línea final. A continuación se presentan las conversiones. Todas las utilizadas por tcsh [2] están respaldadas

Tiempo

      %E     

Tiempo real transcurrido (en [horas:]minutos:segundos).

      %e     

(No aparece en tcsh.) Tiempo real transcurrido (en segundos).

      %S     

Número total de segundos de CPU que el proceso consumió en modo de núcleo.

      %U     

Número total de segundos de CPU que el proceso consumió en modo de usuario.

      %P     

Porcentaje de CPU que recibió este trabajo, calculado como (%U + %S) / %E.

Memoria

      %M     

Conjunto máximo residente del proceso durante su tiempo de vida, en KBytes.

      %t     

(No aparece en tsch.) Tamaño aproximado del conjunto residente del proceso, en KBytes.

      %K     

Uso de memoria total aproximado (datos+pila+texto) del proceso, en KBytes.

      %D     

Tamaño aproximado del área de datos no compartida del proceso, en KBytes.

      %p     

(No aparece en tsch.) Tamaño aproximado del espacio de pila no compartido del proceso, en KBytes.

      %X     

Tamaño aproximado del espacio de texto compartido del proceso, en KBytes.

      %Z     

(No aparece en tsch.) Tamaño de página del sistema, en KBytes. Esto es una constante del sistema, pero varía entre un sistema y otro.

      %F     

Número de faltas de página principales, que ocurrieron mientras el proceso se ejecutaba. Estas son faltas en las que la página debe ser leída desde disco.

      %R     

Número de faltas de página menores o recuperables. Estas son faltas para páginas que no son válidas pero que no han sido reclamadas aún por otras páginas virtuales. De este modo, los datos en la página son todavía válidos, pero las tablas de sistema deben actualizarse.

      %W     

Número de veces que el proceso fue intercambiado hacia afuera de la memoria principal.

      %c     

Número de veces que el proceso fue intercambiado de contexto involuntariamente (porque finalizase la porción de tiempo).

      %w     

Número de esperas: veces que el programa fue intercambiado de contexto voluntariamente, por ejemplo, mientras se espera a que se complete una operación de E/S.

E/S

      %I     

Número de entradas al sistema de archivos por el proceso.

      %O     

Número de salidas al sistema de archivos por el proceso.

      %r     

Número de mensajes de conexión recibidos por el proceso.

      %s     

Número de mensajes de conexión enviados por el proceso.

      %k     

Número de señales entregadas al proceso.

      %C     

(No aparece en tcsh.) Nombre y argumentos en línea de órdenes de la orden temporizada.

      %x     

(No aparece en tcsh.) Estado de salida de la orden.

Opciones de GNU

      -f FORMATO, --format=FORMATO

Especificar el formato de salida, posiblemente redefiniendo el formato especificado en la variable de entorno TIME.

      -p, --portability

Usar el formato de salida transportable.

      -o FICHERO, --output=FICHERO

No enviar los resultados a stderr, sino sobreescribir el fichero especificado.

      -a, --append

(Usado en conjunción con -o.) No sobreescribir, sino añadir al final.

      -v, --verbose

Ofrece una salida detallada sobre todo lo que el programa conoce.

Opciones GNU Estándar

      --help 

Imprime un mensaje de uso en la salida estándar y termina satisfactoriamente.

      -V, --version

Imprime la información sobre la versión en la salida estándar y termina satisfactoriamente.

      --     

Terminar la lista de opciones.

Fallos

No todos los recursos son medidos por todas las versiones de Unix, de modo que algunos valores pueden ser devueltos como cero. La selección presente fue mayormente inspirada por los datos suministrados por 4.2 o 4.3BSD. La versión 1.7 de GNU de time aún no está localizada. De modo que no implementa los requisitos de POSIX. La variable de entorno TIME no fue elegida correctamente. No es inusual en sistemas como autoconf o make usar variables de entorno con el nombre de una utilidad para reemplazar la utilidad a usar. Usos como MORE o TIME para opciones a programas (en lugar de nombres de ruta a programas) tiende a llevar a dificultades. Parece desafortunado que -o sobreescriba en lugar de añadir al final. (Esto es, la opción por defecto debería ser -a.)

Referncias

Fuentes