在高中和大学的计算机科学课程中,我听到了很多这样的话:
“这对现代JVM来说不是个问题。”
通常,这会在讨论整体性能或优化策略时出现。它一直被视为一种神奇的最终答案,尽管,它使问题不再值得思考。这让我想知道:原型的“现代JVM”和更老的JVM之间到底有什么区别呢?
发布于 2009-12-28 16:39:54
JVM技术中最重要的改进是JIT:准时编译器。JIT在运行时优化了代码,从而产生了巨大的性能提高,这使得Java (至少在某些领域)与C/C++程序竞争。
关于动态优化(在代码运行时)与静态优化(编译期间)的好处的有趣讨论可以在Steve的talk:http://steve-yegge.blogspot.com/2008/05/dynamic-languages-strike-back.html中找到(它本身就很有趣)。
其他与JIT并不完全无关的JVM改进是,为类方法和接口方法更快地分派虚拟方法。
发布于 2009-12-28 16:40:08
过去,没有竞争的同步是缓慢的。
垃圾收集变得更快了。
热点优化得到了很好的改善。
一些非常老的JVM只拥有绿线。
发布于 2009-12-29 17:32:04
现代JIT可以根据分析信息和从字节码派生的其他信息积极地优化机器代码:
https://stackoverflow.com/questions/1970295
复制相似问题