HotSpot JVM 是如何识别热点方法的?

How does HotSpot JVM identify hot methods?

我想了解 JVM 的工作原理,并且我一直在阅读博客 post 和文档。然而,事情很混乱,而且经常过时。我知道随着方法被越来越多地调用(10k 或 15k 调用阈值取决于编译器),JVM JIT 将它们编译为本机代码并维护代码缓存。我有兴趣浏览做出这些决定的实际源代码。

post 解释的很好。但是,我使用的是 OpenJDK11,源代码的结构似乎发生了变化。分层编译使事情变得更加复杂。 OpenJDK的源码有详细的文档吗?还是我必须一个一个地查看源文件?

Searching the JDK's mercurial repository reveals that the AdvancedThresholdPolicy was merged into the SimpleThresholdPolicy in commit 5201c9474ee7 as part of 8202711, and may now be found in src/hotspot/share/runtime/simpleThresholdPolicy.cpp.