Как мне рассчитать время моего сценария в R?

Я думаю, у меня есть простой и прямой вопрос.

Я запускаю скрипт, и для каждой функции я хочу определить время выполнения функции. Я полагаю, что есть функция для определения времени моей функции. Может ли кто-нибудь помочь мне здесь?

Я искал, но продолжаю находить функции для временных рядов и временных интервалов. Я не ищу это.


person Zuenie    schedule 06.08.2014    source источник
comment
system.time может быть решением. Чтобы найти альтернативные решения, используйте ключевое слово CPU : RSiteSearch("CPU").   -  person Vincent Guillemot    schedule 06.08.2014


Ответы (1)


Как и другие в комментариях, упомянутых ранее, проще всего использовать system.time. Вот пример кода со страницы руководства system.time .

require(stats)
system.time(for(i in 1:100) mad(runif(1000)))

## Not run: 
exT <- function(n = 10000) {
  # Purpose: Test if system.time works ok;   n: loop size
  system.time(for(i in 1:n) x <- mean(rt(1000, df = 4)))
}

#-- Try to interrupt one of the following (using Ctrl-C / Escape):
exT()                 #- about 4 secs on a

2.5GHz Xeon
system.time(exT())    #~ +/- same

На моей машине после вызова функции exT() я вывожу следующее:

    user  system elapsed 
   2.916   0.004   2.925

И для функции system.time(exT()) я получаю следующий вывод:

   user  system elapsed 
  3.004   0.016   3.026 

Это означает, что для первого случая истекшее время составляет 2,925 секунды, а для второго — 3,026.

Однако, если вы хотите выполнить тесты производительности, вам следует использовать пакет rbenchmark (перейдите здесь). . Это библиотека, состоящая из одной функции:

Библиотека состоит всего из одной функции, эталонного теста, который представляет собой простую оболочку для system.time.

По ссылке, которую я предоставил, вы можете увидеть больше примеров того, как использовать этот пакет. Там есть 4 примера, которые довольно хороши.

person Belphegor    schedule 06.08.2014