与乘法和除法运算相比,左移和右移是否具有更好的性能?

问题描述 投票:0回答:1

如果我想做最快的方法来计算 x * 2,我应该使用哪一种?

x << 1

x * 2

同样的逻辑思维,如果我想做最快的方法来计算x / 2,我应该使用哪一种?

x >> 1

x / 2

为什么?

javascript performance math operators bit
1个回答
3
投票

没有区别:

` Chrome/127
---------------------------------------------------
shift     ■ 1.00x | x1000000000 246 246 252 255 262
multiply  ■ 1.00x | x1000000000 246 252 254 257 258
--------------------------------------------------- `

游乐场开放

// @benchmark shift
2 << 1

// @benchmark multiply
2 * 2

/*@skip*/ fetch('https://cdn.jsdelivr.net/gh/silentmantra/benchmark/loader.js').then(r => r.text().then(eval));

© www.soinside.com 2019 - 2024. All rights reserved.