gpt4 book ai didi

java - 我在哪里可以找到有关 Sun 的 JVM 内部工作原理的信息?

转载 作者:行者123 更新时间:2023-12-03 22:41:56 25 4
gpt4 key购买 nike

作为开发人员,我想知道调用虚拟方法与接口(interface)方法的成本是多少。现在,我知道为什么 invokeinterfaceinvokevirtual 慢,但我想知道 Sun 是否在他们发布的 JVM 的最新版本中采用了新机制来改进 invokeinterface 。我怎样才能找到这样的信息?

最佳答案

Oracle 收购了 Sun,在他们的网站上提供了关于 HotSpot JVM 的旧 Sun 白皮书:

http://java.sun.com/products/hotspot/docs/whitepaper/Java_HotSpot_WP_Final_4_30_01.html

关于您最初关于 invokevirtualinvokeinterface 的问题,Sun 已经做了很多非常积极的性能优化来尝试改善这一点。他们使用的众多技术之一称为 polymorphic inline caching并且可以显着简化接口(interface)调度的运行时开销,使其达到或优于常规 invokevirtual 调度的水平。这个想法是跟踪每个调用站点附近的一个小表,跟踪调用站点经常使用的类型。每当调用接口(interface)方法时,调用该方法的对象就可以将其类型与已知类型进行比较,如果匹配,则可以通过在小型缓存中查找应该调用哪个方法来快速进行调用。

此外,我相信 HotSpot 使用动态分析来尝试证明在某些程序点上,接口(interface)指针所引用的对象的类型恰好是某种特定类型。如果是这样,则调用可以完全内联或可以解析而不需要任何进一步的动态查找。

希望这对您有所帮助!

关于java - 我在哪里可以找到有关 Sun 的 JVM 内部工作原理的信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7054738/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com