【问题标题】:do the parantheses matter?括号重要吗?
【发布时间】:2013-06-17 20:50:43
【问题描述】:

鉴于此JSPerf 测试

为什么会更快

var x;var i = 1E4;var j = 1E4;
for (; i-- > -1;) {
  x = -~x;
}
for (; j-- > -1;) {
  x = ~ - x;
}

比这个?

var x;var i = 1E4;var j = 1E4;
for (; j-- > -1;) {
  x = -1 * ~x;
}
for (; j-- > -1;) {
  x = ~ (-1 * x);
}

第二个版本优化更好,或者是什么原因?

【问题讨论】:

  • 您是否在第二个示例中的某处重置j

标签: javascript performance increment decrement


【解决方案1】:

在第二个代码示例中,您在两个循环中都使用 j 作为迭代器。

【讨论】:

    【解决方案2】:

    我相信在第二个测试中,您要么忘记将 j 重置为 1E4,要么打算在其中一个循环中使用 i。看这个测试:

    http://jsperf.com/bit-increment/2

    我在第一个循环中使用i 添加了一个sn-p,在第二个循环中使用j,它的执行速度与第一个测试一样快。

    【讨论】:

    • 谢谢! :) 天哪,我怎么能错过:P
    • 我会接受他的回答,因为这是他的第一个回答,而且只是稍晚一点
    猜你喜欢
    • 2012-06-04
    • 1970-01-01
    • 1970-01-01
    • 2012-10-24
    • 2014-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多