Descripción general
El comando time mide el tiempo de ejecución de un programa o script específico y proporciona estadísticas detalladas sobre el uso de recursos, como el tiempo de CPU del usuario, el tiempo de CPU del sistema y el tiempo transcurrido real. Esto ayuda a identificar cuellos de botella en el rendimiento de las aplicaciones.
Métricas de medición principales
- Tiempo real (Real time): Tiempo transcurrido real desde que el comando comienza hasta que finaliza.
- Tiempo de CPU del usuario (User CPU time): Tiempo que la CPU pasó ejecutando el comando en modo de usuario.
- Tiempo de CPU del sistema (System CPU time): Tiempo que la CPU pasó ejecutando el comando en modo de kernel.
Opciones principales
El comando time puede controlar el formato de salida o solicitar información adicional a través de varias opciones.
Formato y control de salida
Comando generado:
Combina los comandos.
Descripción:
`time` Ejecutando el comando.
Combina las opciones anteriores para ejecutar virtualmente los comandos junto con la IA.
Ejemplos de uso
Uso básico
time ls
Mide el tiempo de ejecución del comando ls.
Salida en formato POSIX
time -p sleep 1
Muestra el tiempo de ejecución del comando sleep en formato compatible con POSIX.
Guardar resultados de medición en un archivo
time -o time_output.txt -a ls -l
Guarda los resultados de la medición del comando ls -l en el archivo time_output.txt. La salida de time se dirige a la salida de error estándar, por lo que se utiliza 2>.
Salida en formato personalizado
time -f "Real: %e Usuario: %U Sistema: %S" sleep 1.5
Muestra el tiempo real, el tiempo de CPU del usuario y el tiempo de CPU del sistema en un formato específico.
Consejos y precauciones
Puntos a tener en cuenta y consejos adicionales al usar el comando time.
Comando time integrado en el shell vs. comando time externo
Shells como bash o zsh tienen su propio comando time integrado. Este generalmente solo muestra los valores real, usuario y sys, y tiene funcionalidades más limitadas que el comando time externo (/usr/bin/time). Si desea información más detallada, debe llamar explícitamente al comando time externo.
Uso explícito del comando time externo
\time sleep 1
/usr/bin/time sleep 1
Para usar el comando time externo en lugar del comando time integrado del shell, anteponga una barra invertida (\time) o especifique la ruta completa.
Precisión de la medición
- Los comandos muy cortos (en milisegundos) pueden tener una mayor diferencia de medición.
- Los resultados de la medición pueden variar según el estado de carga actual del sistema, por lo que para una medición precisa, se recomienda repetir varias veces y verificar el valor promedio.
Redirección de salida
La salida del comando time se dirige a la salida de error estándar (stderr). Por lo tanto, para redirigir los resultados de la medición de time a un archivo, debe usar 2> o 2>>. Por ejemplo, `time ls 2> time_result.txt` mostrará la salida de ls en la pantalla y guardará solo el resultado de time en el archivo.