为什么数学方法比Javascript中的按位运算符更快?

时间:2015-05-13 12:50:57

标签: javascript performance math cpu

为什么Math中的方法比Javascript中的按位运算符更快?

例如:

  1. Math.floor vs | 0.(http://jsperf.com/floor-vs-bitwise22
  2. Math.max vs a ^((a ^ b)& - (a< b))(http://jsperf.com/max-vs-bitwise-22
  3. Math.min vs b ^((a ^ b)& - (a< b))(http://jsperf.com/min-vs-bitwise-22
  4. 我想知道在实现级别,因为在位级执行某些东西我以为我会跳过计算机要做的所有翻译和调用来做我想要的,在位级别,这是更少的cpu操作。< / p>

    发生了什么事?

1 个答案:

答案 0 :(得分:1)

  

......我想我会跳过计算机要做的所有翻译和电话......

现代优化JavaScript引擎可以执行令人惊讶的优化。在这种情况下,我猜测Math调用只是内联。

如果您真的想知道发生了什么,而不仅仅是猜测,那么您将不得不查看优化器生成的最终产品。参见例如How can I see the machine code generated by v8?了解详情。