title: 如果减少R中非循环funciton的运行时间?
desc: 最近帮老师做事， 因为数据量比较大1000010000， 要用network，然后做flow betweenness.<br>这样的数据， 跑flowbet function 大概要用6个小时.<br>在下曾经用过doParallel包， 八核一起用可以减少很多运行时间， 但是这个包只能用在循环里.<br>请问大家知道有什么方法可以减少普通function的运行时间吗<br>谢谢
topic: 编程
content: 可以尝试下面的方法： 1. 通过Rprof找到速度瓶颈，在瓶颈处优化最有效。2. 循环采用多进程并行化不行，可以尝试手动分割任务成可并行的部分，然后手工多进程并行化 3. 效率低的代码采用高性能的写法（向量化计算矩阵计算等等） 4. 如果是矩阵计算有瓶颈，可以用采用了Intel MKL 的 RRO httpsmran.revolutionanalytics.comdownload 4. 用Rcpp重写低效代码 5. 在Rcpp中用OpenMP等技术实现C原生数据结构上的多线程并行化。