gpt4 book ai didi

javascript - 对于奇数测试,按位 AND 运算符总是比模数快(仍然)吗?

转载 作者:行者123 更新时间:2023-11-29 23:17:24 29 4
gpt4 key购买 nike

我正在做一些阅读,试图更好地理解按位运算符,然后偶然发现了 a helpful old blog post from 2012 ,其中指出 - 在随机正整数 x 的奇数测试中 - 在作者的计算机上评估 x & 1 比评估 x % 2 快 60% .我在网上其他地方(包括 SO)上读到的东西似乎证实了按位运算符更快。

我以前从未在 jsperf 中编写过性能测试,但我有兴趣测试它以了解 Javascript 中的差异有多大。我惊讶地发现,在对几个不同的浏览器和设备进行测试后,模数似乎经常更快。

结果

Chromebook 上的 Chrome

Chrome on Chromebook

华为 P8 上的 Chrome

Chrome on Huawei P8

Macbook Pro 上的 Chrome

Chrome on Macbook Pro

Macbook Pro 上的火狐

Firefox on Macbook Pro

Macbook Pro 上的 Safari

Safari on Macbook Pro

Macbook Air 上的 Safari

Safari on Macbook Air

我对每个测试都运行了几次,以检查结果是否一致。在 FF 和 Chrome 上有相当一致的赢家,尽管 Safari 确实有更大的波动。

由于我完全没有性能测试的经验,我是不是把测试写错了?如果不是,现代设备和浏览器是否会以某种方式导致模数运算符的性能优于按位 AND(或性能差异可忽略不计)?这甚至是对此进行基准测试的合适方法吗?

或者还有其他我还不明白的事情发生? (很有可能!)

最佳答案

我认为您已经回答了自己的问题。总是这样吗?显然不是。与 JavaScript 的许多其他事情一样,结果在很大程度上取决于浏览器,因为每个浏览器都有自己的引擎或实现。

关于javascript - 对于奇数测试,按位 AND 运算符总是比模数快(仍然)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52256012/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com