Time (Unix)
# Time (Unix)

El comando time (del inglés time, tiempo) es un comando del sistema operativo Unix y derivados. Se utiliza para determinar la duración de ejecución de un determinado comando.

## Uso

Para utilizar el comando, simplemente hay preceder a cualquier comando de la palabra time, como por ejemplo:

Al ejecutar el comando, time informará de cuanto tiempo llevó ejecutar el comando ls en términos de tiempo de CPU de usuario, tiempo de CPU del sistema y tiempo real. El formato de salida varía entre diferentes versiones del comando, dando algunas versiones estadísticas adicionales como en el siguiente ejemplo:

## Tiempo de usuario vs. tiempo de sistema

El término «tiempo de CPU de usuario» puede inducir a errores en un principio. Para ser claros, el tiempo total de CPU es la combinación de la cantidad de tiempo que la CPU (o CPUs) tarda en realizar alguna acción para un programa y la cantidad de tiempo que la CPU (o CPUs) tarda en realizar llamadas al sistema para el kernel en el nombre del programa. Cuando un programa recorre una matriz, se acumula tiempo de CPU de usuario. Por el contrario, cuando un programa ejecuta una llamada al sistema, como por ejemplo un exec o un fork, se 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, como si fuese un cronómetro. El tiempo de CPU total (tiempo de usuario + tiempo de sistema) puede ser mayor o menor que ese valor. Puesto que un programa puede pasar algún tiempo de espera y no ejecutar nada (ya sea en modo usuario o modo sistema) el tiempo real puede ser mayor que el tiempo total de CPU. Puesto que un programa puede bifurcar hijos cuyo tiempo de CPU (tanto de usuario como de sistema) es sumado a los valores mostrados por el comando time, el tiempo de CPU total puede ser mayor que el tiempo real.

