Как микробенчмаркировать подпрограммы в R? - PullRequest
0 голосов
/ 02 мая 2018

Я запрограммировал R функцию f, которая вызывает подпрограммы f1 и f2. Say

f1 <- function() Sys.sleep(0.1)
f2 <- function() Sys.sleep(0.2)

f <- function(){
  f1()
  f2()
}

Я хочу сравнить производительность f и его подпрограмм, чтобы выяснить, какую подпрограмму можно улучшить в отношении времени выполнения. К сожалению, microbenchmark дает только время выполнения f:

microbenchmark(f(), times = 10) # gives
Unit: milliseconds
 expr      min       lq     mean   median       uq      max neval
  f() 302.0776 309.7246 312.5698 312.9659 314.0021 327.6248    10

Я хотел бы получить статистику для подпрограмм, вызываемых в f. Что-то вроде

Unit: milliseconds
 expr      min       lq     mean   median       uq      max neval
 f1() 100.0000 107.0000 115.0000 115.0000 117.0000 127.0000    10
 f2() 202.0000 209.0000 212.0000 212.0000 214.0000 227.0000    10

1 Ответ

0 голосов
/ 02 мая 2018

Как также указано в комментариях, профилирование вашей функции - это способ узнать время подпрограмм. Пакет, упомянутый Хэдли Уикхемом, устарел в пользу profvis, поэтому я думаю, что profvis - тот, на кого стоит пойти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...