java - "modern JVMs"与旧版 JVM 有何不同?

标签 java jvm history

这是我在高中和大学计算机科学类(class)中经常听到的一句话:

"That's not an issue for modern JVMs."

通常这会出现在关于整体性能或优化策略的讨论中。然而,它总是被视为一种神奇的最终答案,好像它让问题不再值得思考。这让我想知道:原型(prototype)“现代 JVM”和旧 JVM 之间到底有什么区别?

最佳答案

JVM 技术最显着的改进是 JIT:Just In Time 编译器。 JIT 在运行时优化代码,从而产生巨大的性能提升,使 Java(至少在某些领域)与 C/C++ 程序竞争。

有关动态优化(在代码运行时)与静态优化(在编译期间)的好处的有趣讨论可以在 Steve Yegge 的演讲中找到:http://steve-yegge.blogspot.com/2008/05/dynamic-languages-strike-back.html (顺便说一句,它本身就很有趣)。

与 JIT 并非完全无关的其他 JVM 改进是更快地分派(dispatch)虚拟方法,包括类方法和接口(interface)方法。

关于java - "modern JVMs"与旧版 JVM 有何不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1970295/

相关文章:

java - 中断长工作线程

Java CSS fx-focus-color 没有出现在自动完成列表中?

java - 获取没有 PATH 变量的 JavaVM 路径 (Windows)

ruby - rbenv irb 历史不保存

ajax - HTML5 历史 : Problems with back button after full page load

history - REM 在 BASIC 中代表什么?

java - 当登录表单为 javascript 时,使用 HtmlUnit 登录网站

scala - 如何在运行应用程序或测试用例时将JVM选项传递给SBT以使用?

java - Hazelcast:使用 ConcurrentHashMap 或 ITopic 消息传递对象来分发数据?

java - 贾斯珀报告 : List object getting merged with other object list while generating report