javascript - JSPerf、For 循环与 While 循环

标签 javascript performance loops for-loop while-loop

嘿,大家谁能告诉我为什么我在这个 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/

相关文章:

javascript - 当向我显示此错误 "Cannot read properties of undefined (reading ' _internalPath') 时,我尝试使用 nodejs 和 firestore 中的过滤器获取数据”

javascript - 有什么方法可以将图像与选择列表一起使用?

database - PL/SQL - NOCOPY 参数以提高性能

java - 迭代所有可用的 Ant 属性

javascript - 在javascript中将字符串变量转换为正则表达式?

javascript - angularjs http.post() 未收到响应

C++ "Best"参数传递方式

asp.net-mvc - 许多领域的 MVC 性能问题

java - helper 处理循环

function - 计算阶乘函数的循环不变式