【发布时间】:2019-03-26 17:28:47
【问题描述】:
据我所知,取模% 是一个非常昂贵的操作,由下面的除法操作支持,是 CPU 中最慢的操作。
是否值得用代码中的按位模拟number & (divisor - 1) 显式替换此操作,或者JIT 可以为我们隐式执行此操作?
【问题讨论】:
-
不用担心这些低级优化。在 99.9% 的情况下,它们不会产生明显的差异。在 0.1% 的情况下(例如算法交易)——首先我会质疑你首先选择使用 Java 的选择——如果你正在开发这样的应用程序,那么你可能不会提出这个问题。专注于编写易于阅读和维护的代码。
-
运行一些测试,看看你得到了什么。
-
您询问的是性能还是一般情况?
-
@talex 性能原因,代码可读性是我在这里最不感兴趣的事情
-
缺少一些东西:
17 % 5 == 2但17 & (5-1) == 0
标签: java performance jit