RFR(S) 8246019 PerfClassTraceTime slows down VM start-up

Ioi Lam ioi.lam at oracle.com
Tue Jun 16 23:54:03 UTC 2020


Thanks Yumin!

- Ioi

On 6/16/20 4:44 PM, Yumin Qi wrote:
> Looks good to me.
>
>
> Thanks
>
> Yumin
>
>
> On 6/16/20 1:14 PM, Ioi Lam wrote:
>> https://bugs.openjdk.java.net/browse/JDK-8246019
>> http://cr.openjdk.java.net/~iklam/jdk16/8246019-avoid-PerfClassTraceTime.v01/ 
>>
>>
>> PerfClassTraceTime is (a rarely used feature) for measuring the time 
>> spent during class linking and initialization. However, it's quite 
>> expensive and it needs to start and stop a bunch of timers. With CDS, 
>> it's quite often for the overhead of the timer itself to be much more 
>> than the time it's trying to measure, giving unreliable measurement.
>>
>> In this patch, when it's clear that the init and linking will be very 
>> quick, I disable the timer and count only the number of invocations. 
>> This shows a small improvement in start-up
>>
>> Results of " perf stat -r 100 bin/java -Xshare:on 
>> -XX:SharedArchiveFile=jdk2.jsa -Xint -version "
>>
>> 59623970 59341935 (-282035)   -----  41.774  41.591 ( -0.183) -
>> 59623495 59331646 (-291849)   -----  41.696  41.165 ( -0.531) --
>> 59627148 59329526 (-297622)   -----  41.249  41.094 ( -0.155) -
>> 59612439 59340760 (-271679)   ----   41.773  40.657 ( -1.116) -----
>> 59626438 59335681 (-290757)   -----  41.683  40.901 ( -0.782) ----
>> 59618436 59338953 (-279483)   -----  41.861  41.249 ( -0.612) ---
>> 59608782 59340173 (-268609)   ----   41.198  41.508 (  0.310) +
>> 59614612 59325177 (-289435)   -----  41.397  41.738 (  0.341) ++
>> 59615905 59344006 (-271899)   ----   41.921  40.969 ( -0.952) ----
>> 59635867 59333147 (-302720)   -----  41.491  40.836 ( -0.655) ---
>> ================================================
>> 59620708 59336100 (-284608)   -----  41.604  41.169 ( -0.434) --
>> instruction delta =      -284608    -0.4774%
>> time        delta =       -0.434 ms -1.0435%
>>
>> The number of PerfClassTraceTime's used is reduced from 564 to 116 
>> (so we have an overhead of about 715 instructions per use, yikes!).



More information about the hotspot-runtime-dev mailing list