嘿,大家谁能告诉我为什么我在这个 JSPerf 中的代码似乎表明 for 循环实际上比 while 循环更快?
我什至将值减小到零,并且 for
似乎仍然跑赢大盘?
http://jsperf.com/html-canvas-performance
郑重声明,我正在制作一个 HTML/Canvas 游戏,我需要迭代实体以进行渲染。
编辑:代码 -
编辑如果不清楚问题是什么; “for
似乎仍然表现出色?”
Benchmark.prototype.setup = function() {
var e = [];
var i = 100;
while(i--) e.push(Math.random() * -1 << 1);
};
Benchmark.prototype.teardown = function() {
e.length = 0;
};
//WHILE
var i = e.length;
while(i--) e[i] *= 123;
//FOR
for(var i = 0; i < e.length; i++) e[i] *= 123;
最佳答案
看起来向后访问数组很慢,但不是因为 while。
http://jsperf.com/html-canvas-performance/3
对于我来说,以下代码具有相同的性能。
var i = 0, z = e.length;
while(i < z) e[i++] *= 123;
关于javascript - JSPerf、For 循环与 While 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34366388/