unix - script - ¿Cómo entender la salida del comando time?
comandos shell linux (3)
"real" es la cantidad de tiempo de reloj que tomó. Si tuvieras que cronometrarlo con un cronómetro, eso es lo que obtendrías.
"usuario" es la cantidad de tiempo de CPU que el proceso utilizó.
''sys'' es la cantidad de tiempo de CPU que el kernel pasó en nombre del proceso.
Estoy tratando de averiguar el rendimiento de mi código, pero no entiendo la salida del comando de time
. ¿Alguien puede explicar qué significa la salida del comando de tiempo?
Lo siguiente es lo que obtengo:
time ./filereader
real 0m0.193s
user 0m0.012s
sys 0m0.056s
¿Qué es real
, user
, sys
?
De: http://zch051383471952.blogspot.com/2010/01/different-of-real-user-sys-time.html
Real se refiere al tiempo transcurrido real; Usuario y Sys se refieren al tiempo de CPU utilizado solo por el proceso.
- Real es la hora del reloj de pared - hora desde el inicio hasta el final de la llamada. Esto es todo el tiempo transcurrido, incluidos los intervalos de tiempo utilizados por otros procesos y el tiempo que el proceso pasa bloqueado (por ejemplo, si está esperando que se complete la E / S).
- Usuario es la cantidad de tiempo de CPU empleado en el código de modo de usuario (fuera del kernel) dentro del proceso. Este es solo el tiempo de CPU real utilizado en la ejecución del proceso. Otros procesos y el tiempo que el proceso pasa bloqueado no cuentan para esta cifra.
- Sys es la cantidad de tiempo de CPU empleado en el kernel dentro del proceso. Esto significa ejecutar el tiempo de CPU empleado en las llamadas del sistema dentro del kernel, a diferencia del código de biblioteca, que todavía se está ejecutando en el espacio de usuario. Como ''usuario'', este es solo el tiempo de CPU utilizado por el proceso.
Si está desarrollando con C / C ++, debería usar gprof para perfilar su código, consulte http://www.cs.duke.edu/~ola/courses/programming/gprof.html