RFR: 8356027: Print enhanced compilation timings [v4]
Vladimir Kozlov
kvn at openjdk.org
Mon May 5 21:15:46 UTC 2025
On Mon, 5 May 2025 16:37:00 GMT, Aleksey Shipilev <shade at openjdk.org> wrote:
>> 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`
>> - [x] Linux x86_64 server fastdebug, `all`
>
> Aleksey Shipilev has updated the pull request incrementally with one additional commit since the last revision:
>
> Revert the shared printing block
"W=time spent in waiting to be put on compilation queue"
I am not sure about this since it is mostly 0s in normal execution. I understand that you already have values and easy to calculate but output become complex and you may forgot what the columns mean.
I thought about using `-XX:+Verbose` to gate it but it is debug flag. May be we can print it only for installing AOT code?
Changes are fine otherwise. I will test them.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/24984#issuecomment-2852352326
PR Comment: https://git.openjdk.org/jdk/pull/24984#issuecomment-2852353316
More information about the hotspot-dev
mailing list