Estoy usando system.time(expression)
para medir el tiempo de ejecución de una función R.
La salida que obtengo por la llamada
system.time(myfunction())
es:
user system elapsed
117.36 5.65 127.86
¿Qué miden el 'usuario' y el 'sistema'?
Respuestas:
Esto se discute en
?proc.time
(system.time()
devuelve un objeto de clase"proc.time"
):Details: ‘proc.time’ returns five elements for backwards compatibility, but its ‘print’ method prints a named vector of length 3. The first two entries are the total user and system CPU times of the current R process and any child processes on which it has waited, and the third entry is the ‘real’ elapsed time since the process was started.
....y
Value: .... The definition of ‘user’ and ‘system’ times is from your OS. Typically it is something like _The ‘user time’ is the CPU time charged for the execution of user instructions of the calling process. The ‘system time’ is the CPU time charged for execution by the system on behalf of the calling process._
fuente
La explicación más clara que he leído sobre la diferencia entre
user
y elsystem
tiempo transcurrido fue proporcionada por William Dunlap en [R-help] :Aunque
?proc.time
devuelve algo similar, esta descripción fue mucho más fácil de entender para mí.fuente
Aquí hay algunas explicaciones simples:
El tiempo transcurrido es el tiempo que se carga a las CPU por la expresión.
User Time es la hora del reloj de pared. El tiempo que experimentó usted como usuario.
Por lo general, ambos tiempos son relativamente cercanos. Pero pueden variar en algunas otras situaciones. Por ejemplo:
fuente
Dado que estos son genéricos de todos modos, de Wikipedia:
http://en.wikipedia.org/wiki/Time_(Unix)#User_Time_vs_System_Time
fuente
Dado que esas variables de tiempo están definidas por su sistema operativo, puede recuperar información sobre cómo se calculan ejecutando
man time
en su shell (en Unix):La definición de las variables de tiempo mencionadas se puede encontrar aquí :
Una aclaración de las diferencias entre el tiempo del usuario y el sistema se describe en la respuesta de daroczig y en otra parte de SO :
fuente