在 R 中,有没有办法使用 saveRDS 函数对保存 7 GB 对象所需的时间进行基准测试和估算?



R中,我目前有一个 7 GB 的列表对象需要保存。有没有办法使用默认值saveRDS()来对保存 7 GB 对象所需的时间进行基准测试和估算?(如文件压缩(我试图近似它,但不确定如何做到这一点。我在一台具有 16 个内核的计算机上(不确定这是否有区别(,并且拥有 30 GB 的 RAM 和快速的 3+ GHZ 处理器。

谢谢。

我不确定这是否是你的意思,但你可以使用"rbenchmark"包(这里有一篇关于不同基准测试方法的很好的博客文章,包括rbenchmark(。

我用 1.1GBlist的对象做了一些基准测试。

library(rbenchmark)
Mylist <- list(a = data.frame(replicate(100000, sample(0:1, 1000, rep = TRUE))), 
b = data.frame(replicate(100000, sample(0:1, 1000, rep = TRUE))), 
c = data.frame(replicate(100000, sample(0:1, 1000, rep = TRUE))))
print(object.size(Mylist), units = "auto")
1.1 Gb
scores <- rbenchmark::benchmark("saveRDS_compress" = {
saveRDS(Mylist, file = tempfile("mylist.rds"), compress = TRUE)
},
"saveRDS_not_compress" = {
saveRDS(Mylist, file = tempfile("mylist.rds"), compress = FALSE)
}, 
"save_compress" = {
save(Mylist, file = tempfile("mylist.rds"), compress = TRUE)
},
"save_not_compress" = {
save(Mylist, file = tempfile("mylist.rds"), compress = FALSE)
},
"rlist::list.save_list.rds" = {
rlist::list.save(Mylist, 'list.rds')
},
"rlist::list.save_list.rdata" = {
rlist::list.save(Mylist, 'list.rdata')
},
"rlist::list.save_list.yaml" = {
rlist::list.save(Mylist, 'list.yaml')
},
replications = 20,
columns = c("test", "replications", "elapsed",
"relative", "user.self", "sys.self"))
dplyr::arrange(scores, elapsed)
test replications elapsed relative user.self sys.self
1        saveRDS_not_compress           20   82.20    1.000     23.68    23.83
2           save_not_compress           20   92.39    1.124     23.80    27.14
3 rlist::list.save_list.rdata           20  889.49   10.821    885.52     2.13
4   rlist::list.save_list.rds           20  912.86   11.105    909.09     1.95
5            saveRDS_compress           20  913.64   11.115    910.30     1.89
6               save_compress           20  919.03   11.180    915.03     2.13
7  rlist::list.save_list.yaml           20 3258.30   39.639   3155.67    97.20

系统信息: 视窗 10 - 64 位,英特尔 i7-7700 3.60Hz,32GB 内存。

> sessionInfo()
R version 3.4.4 (2018-03-15)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)

最新更新