作者:黄天元,复旦大学博士在读,热爱数据科学与开源工具(R),致力于利用数据科学迅速积累行业经验优势和科学知识发现,涉猎内容包括但不限于信息计量、机器学习、数据可视化、应用统计建模、知识图谱等,著有《R语言高效数据处理指南》(《R语言数据高效处理指南》(黄天元)【摘要 书评 试读】- 京东图书)。知乎专栏:R语言数据挖掘。邮箱:huang.tian-yuan@qq.com.欢迎合作交流。
数据量大的时候,就需要优化代码,然后看代码是否比以前快了。这里精选部分R包,用来对比能够完成相同任务的代码性能究竟如何。
CRAN - Package microbenchmark:非常经典的测试包,可以比较代码运行时间,精确到纳秒(ns),给出时间表(最小、最大、均值、中位数、四分位),可调整重复次数。ggplot2中的autoplot和base的plot可以直接对其结果进行可视化。
![9ea1caf7d35a5afcd4767996aa0f5d29.png](https://img-blog.csdnimg.cn/img_convert/9ea1caf7d35a5afcd4767996aa0f5d29.png)
CRAN - Package benchr:一个与microbenchmark很相似的工具,只是能够列出相对的速度比较,总体来说功能较弱。
![c2c3a3e56005797d7ca70516660a436f.png](https://img-blog.csdnimg.cn/img_convert/c2c3a3e56005797d7ca70516660a436f.png)
CRAN - Package bench:较为新的测试包,不仅给出时间信息,还有内存分配信息,也可以进行高级可视化。还可以设置网格参数,总的来说更为便捷。
![b9bbd43405f21b11cec70a4d9e42e7ba.png](https://img-blog.csdnimg.cn/img_convert/b9bbd43405f21b11cec70a4d9e42e7ba.png)
结论:虽然从应用性来说,差别不大。综合来讲,目前看来还是bench包的功能最强。
彩蛋
CRAN - Package benchmarkme:R语言中的鲁大师。可以测试计算机本身的性能,可以进行不同计算机算力之间的比较,同时可以获取其系统信息,如核心数量、硬件系统、R版本等。