智能JVM和JIT微优化

Ale*_*ley 6 java jit jvm micro-optimization

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

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

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

编辑:我把它做成了社区维基; 我想随着时间的推移收集它们.

Sam*_*ell 6

它令人印象深刻.所有这些都是你can't在C++中所做的事情(当然与Java一样).请记住,Java的早期版本开始由没有这些东西的"慢"的美誉,我们不断完善显著随着时间的推移.这仍然是一个很大的研究领域.

  • @mnml它比流行的意见还要少.创建一个对象,我认为他们将它归结为2或3个指令.是的,像C++这样的东西通常更快,但"资源"不仅仅是CPU和内存; 这也是人的时间.硬件很便宜,人很贵.从长远来看,Java通常会在性能上取胜,因为它的JIT非常棒,并且比大多数C++应用程序所能想到的更优化应用程序. (2认同)