compiler-optimization
-
为什么“while (i++ < n) {}” 明显慢于 “while (++i < n) {}” 显然,在我的Windows 8笔记本电脑上使用HotSpot JDK 1.7.0_45(所有编译器/ VM选项都设置为默认值),以下循环 因此,对于 ,它首先将局部变量递增 1,然后将其推送到操作数堆栈上,同时以相反的
-
这是 JVM 错误还是“预期行为”? 我注意到一些意想不到的行为(相对于我个人的期望来说出乎意料),我想知道JVM中是否存在错误,或者这是否是一个边缘情况,我不明白究竟应该发生什么的一些细节。假设我们自己在 main 方
-
当从未执行的代码被注释掉时,Java 程序运行速度较慢 我在我的一个Java程序中观察到一些奇怪的行为。我试图尽可能地精简代码,同时仍然能够复制行为。代码全文如下。 我有两个函数,它们以递归方式相互调用。这两个函数都采用一个控制递
-
JIT 未优化涉及整数.MAX_VALUE 的循环 在编写另一个 来重现问题: 所以我的问题是:有什么特别之处可以阻止JIT以与优化相同的方式进行优化?我的猜测是,这与指令有关,该指令是用于有符号算术的,但仅凭这一点并不是一个
-
拥有大量小方法是否有助于 JIT 编译器进行优化? 在最近关于如何优化某些代码的讨论中,我被告知将代码分解为许多小方法可以显着提高性能,因为JIT编译器不喜欢优化大型方法。 我不确定这一点,因为JIT编译器本身似乎应该能够识别自包
-
如何演示 Java 指令重新排序问题? 使用Java指令重新排序,代码的执行顺序由JVM在编译时或运行时更改,可能导致不相关的语句按顺序执行。 编辑:[指令重新排序会产生违反直觉的结果。许多CPU架构可以对机器指令的内存交互进
-
-
用Java编写的编译器:Peephole优化器实现 我正在为Pascal的一个子集编写编译器。编译器为编造的机器生成机器指令。我想为这种机器语言编写一个窥视孔优化器,但我在替换一些更复杂的模式时遇到了麻烦。 窥视孔优化器规格 我已经
-
默认变量的值与默认初始化 我们都知道,根据 ,每个实例变量都使用默认值进行初始化。例如 (1): 问题是:为什么?但这是需要优化的显而易见的事情。原因何在? UPD:我使用Java 7 1.7.0.11 x64,没有特殊的javac选项
-
Java 8:Class.getName() 减慢 String concatenation chain 的速度 最近,我遇到了一个关于字符串串联的问题。此基准总结了它: 所以问题是,这是否是JVM或编译器错误的适当行为? 我之所以问这个问题,是因为一些项目仍在使用Java 8,如果它不会在任何
标签