IT技术博客大学习 共学习 共进步

Loop Benchmarks

岁月如歌 2009-10-13 22:53:30 浏览 3,403 次

    循环语句有各种写法,哪种效率最高呢?

    测试页面:loop-test.html

    结论:

效率很差的几个方式:arr.forEach 遍历(原生也慢),for in 遍历, arr.pop() 判断,arr[i] 判断。这些写法或许很酷很精简,但对性能有要求时,最好避免使用。多测试几十次,看统计平均结果,在 Firefox 下:++i < i++ < i = i + 1 < i += 1. 原因可以回溯到汇编语言。当然,这更多是编码习惯问题,对性能的影响可以忽略不计。推荐采用最常用的 i++ 或 ++i.缓存 length 能很明显地提高性能,推荐将其养成编码习惯。

    参考页面:Loop Benchmarks, 对普通数组、稀疏数组和 HTML 集合都进行了测试。

建议继续学习

  1. 在C++中实现foreach循环,比for_each更简洁! (阅读 9,363)
  2. 循环、迭代、遍历和递归 (阅读 5,422)
  3. for 循环为何可恨? (阅读 5,382)
  4. C/C++循环获取文件中的每行数据(别以为很简单!) (阅读 5,103)
  5. 优化次数过多的循环 (阅读 3,563)
  6. 数组的优化循环展开与分割 (阅读 3,363)
  7. iOS下自己动手造无限循环图片轮播 (阅读 3,262)
  8. JavaScript优化循环 (阅读 2,661)
  9. Perl6有用的和有意思的循环 (阅读 2,641)
  10. 嵌入主线程消息循环的任务调度器 (阅读 5)