这是一个简单的循环,我正在尝试对性能进行基准测试。
var extremeLoop=function(n){
var time=new Date()
var t=0;
for(var i=0;i<n;i++){
t=1;
}
return (new Date())-time;
}
在Chrome中进行了测试:
extremeLoop(100000000)
305
extremeLoop(1000000000)
3075
extremeLoop(1500000000)
19690
extremeLoop(2000000000)
29448
extremeLoop(10000000000)
174129
我同意这并不重要,但是我想知道为什么会这样吗?
最佳答案
我的猜测是,当n
大于最大32位整数值时,您最终会在循环增量/测试代码中执行更昂贵的操作。
或者,可能是当循环需要更长的时间才能运行时,由于整体系统负载等原因,系统更有可能暂停该过程。由于您是根据挂钟时间来衡量性能的,因此会影响结果。
关于javascript - 极限循环时的非线性性能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21121994/