Search code examples
javajvm-hotspot

How does HotSpot JVM identify hot methods?


I want to understand how JVM works and I have been reading blog posts and documentation. However, things are quite confusing and frequently outdated. I understand as methods get invoked more and more (10k or 15k invocations threshold depending on compiler), JVM JIT compiles them to native code and maintains a code cache. I am interested in browsing the actual source code where these decisions are being made.

This post explains things well. However, I am using OpenJDK11 and the structure of source code seems to have changed. Tiered compilation makes things more complicated. Is there any detailed documentation for OpenJDK's source code? Or do I have to go through source files one by one?


Solution

  • 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.