基准测试时如何获取内存信息?

问题描述 投票:0回答:1

我想知道如何使用不同的库计算几个回归模型。直到现在我使用的是这样的东西:

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
)

但是现在我还要添加有关每个回归使用多少内存(最大值)的信息。我该怎么做?

问候。

r profiling benchmarking
1个回答
3
投票

我想你正在寻找包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

© www.soinside.com 2019 - 2024. All rights reserved.