按位显式替换模运算?

Explicitly substitute modulo operation by bitwise?

据我所知,模 % 是一个相当昂贵的操作,由下面的除法操作支持,CPU 的最慢操作。

是否值得用代码中的按位模拟 number & (divisor - 1) 显式替换此操作,或者 JIT 是否可以隐式地为我们执行此操作?

据我所知,JIT 没有优化这样的表达式:

number%divisor 并不比 number & (divisor - 1) 快(慢或相同),因为 divisor 是常量(所以 divisor - 1 可以在编译时计算)。

很难说差异有多大,因为在现代 CPU 这将取决于它周围的代码、缓存状态和许多其他因素。

PS:请记住,只有当 divisor2 的幂时,优化才会起作用。