Я использую system.time(expression)
для измерения времени выполнения функции R.
Вывод, который я получаю для звонка
system.time(myfunction())
является:
user system elapsed
117.36 5.65 127.86
Что измеряют «пользователь» и «система»?
Ответы:
Это обсуждается в
?proc.time
(system.time()
возвращает объект класса"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.
....и
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._
источник
Самое ясное объяснение разницы между прошедшим временем
user
иsystem
прошедшим временем, которое я когда-либо читал, было дано Уильямом Данлэпом в [R-help] :Хотя
?proc.time
возвращает что-то похожее, это описание было для меня намного проще для понимания.источник
Вот несколько простых объяснений:
Истекшее время - это время, затрачиваемое на процессор (ы) для выражения.
Пользовательское время - время настенных часов. Время, которое испытал вы как пользователь.
Обычно оба времени относительно близки. Но они могут отличаться в некоторых других ситуациях. Например:
источник
Поскольку они в любом случае общие, из Википедии:
http://en.wikipedia.org/wiki/Time_(Unix)#User_Time_vs_System_Time
источник
Поскольку эти временные переменные определяются вашей ОС, вы можете получить информацию о том, как они рассчитываются, выполнив
man time
в своей оболочке (в Unix):Определение упомянутых временных переменных можно найти здесь :
Разъяснение различий между пользовательским и системным временем описано в ответе Дароцига и в других местах на SO :
источник