Как получить информацию о памяти при тестировании? - PullRequest
0 голосов
/ 29 апреля 2019

Мне бы хотелось узнать, как несколько моделей регрессии вычисляются с использованием разных библиотек. До сих пор я использовал что-то вроде этого:

benchmark(
 "mod1" = {mod1 <- glm(varOUT~var1+var2+var3+varfact+City, data=myDF, family = "binomial")},
 "mod2" = {mod2 <- glmer(varOUT~var1+var2+var3+varfact+(1|City/ID),data=myDF,family = "binomial")},
 "mod3" = {mod3 <- glmmTMB(varOUT~var1+var2+var3+varfact+(1|ID),data=myDF,family = "binomial")},
 replications=1
)

Но теперь я также хотел бы добавить информацию о том, сколько памяти (максимум) используется каждой из этих регрессий. Как я могу это сделать?

С уважением.

1 Ответ

3 голосов
/ 29 апреля 2019

Я думаю, что вы ищете пакет bench. Поскольку вы не предоставили данные, я просто воспользуюсь примером из виньетки:

library(bench)

set.seed(42)
dat <- data.frame(x = runif(10000, 1, 1000), y=runif(10000, 1, 1000))

bnch <- bench::mark(
  logical = dat[dat$x > 500, ],
  which = dat[which(dat$x > 500), ],
  subset =subset(dat, x > 500),
  iterations = 150,
  check = FALSE
)

bnch
# A tibble: 3 x 14
  expression   min  mean median      max `itr/sec` mem_alloc  n_gc n_itr total_time result memory time 
  <chr>      <bch> <bch> <bch:> <bch:tm>     <dbl> <bch:byt> <dbl> <int>   <bch:tm> <list> <list> <lis>
1 logical    392us 532us  505us    1.2ms     1878.     377KB     2   148     78.8ms <data~ <Rpro~ <bch~
2 which      308us 358us  331us 636.45us     2793.     260KB     1   149     53.4ms <data~ <Rpro~ <bch~
3 subset     470us 553us  538us   1.19ms     1808.     494KB     3   147     81.3ms <data~ <Rpro~ <bch~
# ... with 1 more variable: gc <list>

mem_alloc это то, что вы ищете, я думаю. По умолчанию проверяется, все ли результаты одинаковы. Поскольку в вашем случае могут быть некоторые различия между результатами, я установил значение check = FALSE.

...