这是我在高中和大学计算机科学课上听到的一句话:
“这对现代JVM来说不是问题。”
通常会出现关于整体绩效或优化策略的讨论。然而,它总是被视为一种神奇的最终答案,好像它使问题不再值得思考。这让我想知道:典型的“现代JVM”和旧的JVM之间有什么区别,真的吗?
答案 0 :(得分:6)
JVM技术最重要的改进是JIT:Just In Time编译器。 JIT在运行时优化代码,从而产生巨大的性能提升,这使得Java(至少在某些领域)与C / C ++程序竞争。
关于动态优化(代码运行)与静态优化(编译期间)的好处的有趣讨论可以在Steve Yegge的演讲中找到:http://steve-yegge.blogspot.com/2008/05/dynamic-languages-strike-back.html(BTW本身很有趣)
与JIT完全无关的其他JVM改进是更快地分派虚方法,包括类方法和接口方法。
答案 1 :(得分:6)
无争议的同步过去很慢 垃圾收集速度快得多 热点优化变得更好 一些非常古老的JVM只有green threads。
答案 2 :(得分:1)
现代JIT可以根据分析信息和从字节代码派生的其他信息积极优化机器代码: