Java和R语言的循环对比测试
因好奇同样的循环在Java中快还是在R语言中快, 于是做了这个小测试.
起初以10亿次循环累加为例.
Java中执行
public class demo13 {
public static void main(String[] args) {
long sum = 0;
long st = System.currentTimeMillis();
for (long i = 0; i<1000000000; i++) { //十亿
sum += i;
}
long et = System.currentTimeMillis();
System.out.println("循环执行时间: "+(et-st));
}
}
循环执行时间: 300ms, 试了几次结果在300上下浮动.
R语言中执行
首先同样循环十亿次, 结果等了近几十秒, 还没有结果出来, 看来差距很明显, 于是直接stop了, 降低次数值1千万测试结果如下:
system.time(
for (i in 1:10000000) {
sum = sum + i
}
)
输出结果:
用户 系统 流逝
3.42 0.00 3.44
结论
Java和R语言的底层还是差异很大的.
R语言部分用C写的底层函数可能运行起来很快, 但是直接用表层的循环完败于Java.