首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >“现代JVM”与较老的JVM有何不同?

“现代JVM”与较老的JVM有何不同?
EN

Stack Overflow用户
提问于 2009-12-28 16:37:22
回答 3查看 388关注 0票数 6

在高中和大学的计算机科学课程中,我听到了很多这样的话:

“这对现代JVM来说不是个问题。”

通常,这会在讨论整体性能或优化策略时出现。它一直被视为一种神奇的最终答案,尽管,它使问题不再值得思考。这让我想知道:原型的“现代JVM”和更老的JVM之间到底有什么区别呢?

EN

回答 3

Stack Overflow用户

发布于 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改进是,为类方法和接口方法更快地分派虚拟方法。

票数 6
EN

Stack Overflow用户

发布于 2009-12-28 16:40:08

过去,没有竞争的同步是缓慢的。

垃圾收集变得更快了。

热点优化得到了很好的改善。

一些非常老的JVM只拥有绿线

票数 6
EN

Stack Overflow用户

发布于 2009-12-29 17:32:04

现代JIT可以根据分析信息和从字节码派生的其他信息积极地优化机器代码:

  • 机器代码可以通过从预期使用中派生出的优化级别生成(它被大量使用,也许还会被更多地使用)。这很有帮助!
  • 对object.getFoo()的调用可以内联,因此方法的内容直接放在生成的代码中,而不需要方法调用。这可以递归地完成,并可能导致将复杂的代码替换为实际执行的少数指令。
  • 垃圾收集工作有了很大改进。这意味着在许多时间内没有被花费。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1970295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档