1. 参考《R语言编程艺术》(Norman Matloff)
chapter 14 & chapter 15
2. 方法
(1)向量化
与非向量化-循环做个对比:
(2)R中调用C或cpp
通过Rstudio建立R包,R包中可以联合使用cpp。仅拿循环做个例子,cpp中做循环的速度秒杀R。
查看R包的源文件,可以发现许多R包其实是用了.cpp的!
(3)多线程
若在Rgui中直接运行程序,1个核跑1个Rgui;若电脑有4个核,就可以开4个Rgui跑4个程序。
使用多线程,就能多核运行了,算法运行时间必然缩短。
可以通过任务管理器观察cpu的运行情况。
对于4核系统,开3个还是4个线程呢?若开4个线程,cpu占用率将达到100%,再加上调用开销,说不定不如开3个核划算。
3. 其他参考推荐
book【R高性能编程】(by Aloysius Lim)