Java取得良好性能的关键是编写惯用的代码,而不是试图超越JIT编译器。如果您编写代码以尝试以某种方式影响其在本机指令级别上执行操作,则您更有可能朝自己开枪。
这并不是说像参考地这样的通用原则并不重要。它们可以,但是我认为使用数组等是性能感知的惯用代码,而不是“棘手的”。
HotSpot和其他优化运行时 非常
聪明如何针对特定处理器优化代码。(例如,查看此讨论。)如果我是专家的机器语言程序员,我会写机器语言,而不是Java。如果不是,那么认为我可以比专家做得更好来优化代码,这是不明智的。
同样,即使您确实知道为特定CPU实现某些功能的最佳方法,Java的优点还是可以在任何地方写入一次即可运行。“优化”
Java代码的巧妙技巧往往会使JIT难以识别优化机会。遵循常见习惯用法的直截了当的代码对于优化器来说更容易识别。因此,即使您获得了适用于测试平台的最佳Java代码,该代码也可能在不同的体系结构上可怕地执行,或者充其量只能在未来的JIT中无法利用增强功能。
如果您想要良好的性能,请保持简单。 真正 聪明的团队正在努力使其快速发展。



