RFR: 8356027: Print enhanced compilation timings [v3]

Aleksey Shipilev shade at openjdk.org
Mon May 5 15:04:10 UTC 2025


> In Leyden, we have the extended compilation timings printouts with -XX:+PrintCompilation / UL, that are very useful to study compiler dynamics. These timings include:
>  1. Time spent before queuing: shows the compilation queue bottlenecks
>  2. Time spent in the queue: shows delays caused by queue bottlenecks and compiler load
>  3. Time spent actually compiling: shows the per-method compilation costs
> 
> We should consider the same kind of printout for mainline. This would also require us to print the compilation task _after_ the compilation, not only before it. This improvement would also obviate any need for `PrintCompilation2` flag, [JDK-8356028](https://bugs.openjdk.org/browse/JDK-8356028).
> 
> The difference from the output format we ship in Leyden:
>  1. This output prints before/after the compilation to maintain old behavior partially. The "before" printout is now prepended with `started` to clearly mark it as such.
>  2. The output is raw number in microseconds. In Leyden repo, we have these prepended with characters, like `C0.1`, but that prepending makes it a bit inconvenient with scripts. This PR also does microseconds, instead of fractional milliseconds. This should be enough to capture the wide range of durations.
> 
> See the sample `-XX:+PrintCompilation` output in the comments.
> 
> Additional testing:
>  - [x] Linux x86_64 server fastdebug, `compiler`
>  - [ ]  Linux x86_64 server fastdebug, `all`

Aleksey Shipilev has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains eight additional commits since the last revision:

 - Add legend
 - Merge branch 'master' into JDK-8356027-print-compilation-timings
 - Test TestDuplicatedLateInliningOutput.java
 - More touchups
 - Fix TypeProfileFinalMethod as well
 - Fix inline tree printing
 - Touchups
 - Fix

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/24984/files
  - new: https://git.openjdk.org/jdk/pull/24984/files/1a3b5a31..4eb0dde9

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=24984&range=02
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=24984&range=01-02

  Stats: 15705 lines in 466 files changed: 12161 ins; 2112 del; 1432 mod
  Patch: https://git.openjdk.org/jdk/pull/24984.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/24984/head:pull/24984

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


More information about the hotspot-dev mailing list