当你想要从代码中挤出最后一点性能时,你会尽可能地利用JIT优化。例如,将方法标记为final以便于方法内联,在关键位置避免多态等。
但我找不到任何参考或选项列表,可以用来'提示' JIT编译器生成更快的代码?难道我们不应该有一份关于JIT低延迟性能的'最佳编程'实践列表吗?
当你想要从代码中挤出最后一点性能时,你会尽可能地利用JIT优化。例如,将方法标记为final以便于方法内联,在关键位置避免多态等。
但我找不到任何参考或选项列表,可以用来'提示' JIT编译器生成更快的代码?难道我们不应该有一份关于JIT低延迟性能的'最佳编程'实践列表吗?
编写适合JIT的代码的最佳方法是编写直接、简单的代码,因为这正是JIT所寻找的并且知道如何进行优化的事物。不要使用任何技巧!
此外,不同的JVM具有不同的JIT,因此为了确保您的代码在所有JVM上都能够良好运行,您不能依赖于它们中的任何一个。
提高JIT性能的通常方式是通过对JVM进行外部配置。由于大多数现代JVM都知道如何直接内联小方法调用,因此大部分性能增益来自于垃圾收集器的配置。在这里,我们花费了很多精力来避免在收集时停止程序,并且您可以根据对底层硬件配置以及哪些设置比其他设置更有效的了解来进行微调。但不要触及Java代码,它需要直接和简单。
HotSpot的作者和其他人已经多次表示,最好的方法是编写简单明了的代码。