智能JVM和JIT微优化

时间:2009-07-17 17:19:01

标签: java jvm jit micro-optimization

随着时间的推移,Sun的JVM和JIT变得非常聪明。以前不再需要将常识作为必要的微优化的东西,因为它会得到照顾。

例如,过去应该将所有可能的类标记为final,因此JVM会尽可能多地内联代码。但是现在,JIT根据在运行时加载的类知道你的类是否是最终的,如果加载一个类使原始类不可能,它会取消内联方法并取消标记为最终

JVM或JIT还为您做了哪些其他智能微优化?

编辑:我将其设为社区维基;我想随着时间的推移收集它们。

3 个答案:

答案 0 :(得分:6)

令人印象深刻。所有这些都是can't在C ++中所做的事情(当然与Java一样)。请记住,Java的早期版本由于没有这些东西而开始了“缓慢”的声誉,并且随着时间的推移我们会不断改进 。这仍然是一个很大的研究领域。

答案 1 :(得分:4)

答案 2 :(得分:3)

Java可以更好地内联,

  • 内联代码仅在运行时可用 甚至是动态生成的。
  • 内联虚拟方法(一次最多两个)
  • 对内联方法及其内联方法执行转义分析。 (要难得多了 在C ++)