RFR: 8346264: "Total compile time" counter should include time spent in failing/bailout compiles

Aleksey Shipilev shade at openjdk.org
Mon Dec 16 11:05:05 UTC 2024


Noticed this when looking through JMH compiler profiler results.

Current `CompilerBroker` counters that are fed into `CompilationMXBean.getTotalCompilationTime()` and JFR `CompilerStatistics` only records the time for successful compilations. If we take a while in compilation and then fail/bail, that time would not be accounted for.

While this seems to be a long-standing behavior, there are problems with this:
 1. This is not what "total" means.
 2. This gives us a blind spot in measuring time taken in failing/bailing compilations.
 3. It does not match well the Javadoc for `CompilationMXBean.getTotalCompilationTime()`: "Returns the approximate accumulated elapsed time (in milliseconds) spent in compilation." -- since the time spent in failing/bailing compilation is still time spent in compilation.

Additional testing:
 - [x] Linux x86_64 server release, `jdk/jfr java/lang/management`

-------------

Commit messages:
 - Fix

Changes: https://git.openjdk.org/jdk/pull/22760/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=22760&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8346264
  Stats: 11 lines in 1 file changed: 5 ins; 6 del; 0 mod
  Patch: https://git.openjdk.org/jdk/pull/22760.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/22760/head:pull/22760

PR: https://git.openjdk.org/jdk/pull/22760


More information about the hotspot-compiler-dev mailing list