作者memphis (让你喜欢这世界~)
看板R_Language
标题parallel IO save/load data
时间Wed Mar 29 20:54:19 2017
一个33GB的物件, 目标是最快速的塞到硬碟里, 跟读回来
1. 之前提过的方案
save/load
saveRDS/readRDS
fwrite/fread (data.table)
write_feather/read_feather (feather)
不过还没有讨论到用multithreads的方式, 多核心压缩/解压缩档案
2. 要看的文件
2.1 官方文件有提到可以用pipe, 直接引用外部程式输出入
https://stat.ethz.ch/R-manual/R-devel/library/base/html/save.html
2.2 网友说可以做一个漂亮的打包
http://stackoverflow.com/questions/28927750/
2.3 我个人试了几个压缩引擎, 觉得这个网页数字比较接近我的经验
http://vbtechsupport.com/1614/
3. 数据与结论
先说结论, pigz, 8线 大概是最好的结果
# 方案1 save/load, 171.9MB
save 748s
load 207s
# 方案2 saveRDS/readRDS, 171.9MB
saveRDS 750s
readRDS 207s
# 方案3 mySaveRDS/myReadRDS(pigz, 8c), 182.6MB
mySaveRDS 86s #8核写入没错
myReadRDS 207s #演算法的关系只会用4核,
#
http://serverfault.com/questions/270814/
# 方案4 mySaveRDS/myReadRDS(pbzip2, 8c), 106.7MB
mySaveRDS 518s #8核写入没错..可是就是很慢
myReadRDS 136s #演算法可以8核分开解压..但是就是很慢
#可以参考2.3的连结, 感觉大概就是那样
4. 附注
CentOS6 没有平行xz, xz版本只有到4.99
xz, pxz都一样没有平行选项
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.240.246.119
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1490792066.A.6F2.html
※ 编辑: memphis (111.240.246.119), 03/29/2017 20:57:48
2F:推 cywhale: 实测推~~ 感谢分享~~ 03/30 17:16