Java 算术运算符与按位运算符的性能比较

标签 java performance operators

在性能非常重要的重复算术运算中,按位运算符对性能有正面还是负面影响?我尝试用 Google 搜索,但找不到明确的答案。

例如我应该使用这个:

int s = 15 << 4;

或者这个:

int s = 15 * 16;

提高我的应用程序的性能。

operator precedence也是如此与性能相关吗?

最佳答案

即使这些操作不是compile-time constant expressions (例如 n << 4 ),虚拟机会在 JIT 编译期间选择更快的实现,因此您可以采用对您来说最易读的任何一种方式进行编写。性能将是相同的。

这是the C++ code HotSpot JVM C2 JIT 编译器使用左移替换了 2 的幂乘法。在下面,您可能会发现一些常量的更多优化(例如将 n * 12 替换为 (n << 3) + (n << 2) )。

关于Java 算术运算符与按位运算符的性能比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34672262/

相关文章:

java - IOException - XML 解析

java - 如何比较来自两个不同数据库的数据?

python - 查询大型 SQL Server 表时,pymssql/pyodbc 性能 (cursor.execute) 非常慢

javascript - 正确使用比较运算符

scala - 奇怪的Scala语法,其中映射Future以便 “==”和 “!=”仅出现一个操作数(而不是两个)

java - JavaME 函数帮助

java - 静态方法中的泛型

java - 如何以 Spring 形式计算带有变量的文本区域?

php - 分析生产中缓慢的 PHP 页面

c# - 我需要使用MS Debug Diagnostic Tool来分析CPU使用率较高的C#应用​​程序的帮助