JRE与节点性能



我有一个快速问题。为什么Javascript的速度几乎是这个片段中Java代码的两倍?Java代码:

public class Main{
public static void main(String[] args){
long startTime = System.currentTimeMillis();
double sum = 0.0;
for(double i=1; i<=100000; i++){
for(double j=1; j<=10000; j++){
sum += i/j;
}
}
long endTime = System.currentTimeMillis();
System.out.println(sum + " [" + (endTime-startTime) + "ms]");
}
}

Javascript代码:

console.time("func");
console.log(func());
console.timeEnd("func");
function func(){
let sum = 0.0;
for(let i=1; i<=100000; i++){
for(let j=1; j<=10000; j++){
sum += i/j;
}
}  
return sum; 
}

终端屏幕截图

据我所知,Java在计算方面应该更快,所以这就是Java在任何时候都应该击败node的地方。你能举几个例子说明java在性能方面的优势在哪里吗。感谢

这不是一段特别现实的代码,然而,Java似乎没有循环展开内部循环。我试过

for(double j=1; j<=10000; j+=2){
sum += i/j;
sum += i/(j + 1);
}

而且速度是原来的两倍。

我建议你尝试一个更现实的例子。

最新更新