Detecting when compilations occur
Arthur Peters
amp at cs.utexas.edu
Fri Oct 13 16:11:18 UTC 2017
Thanks!
I had not thought of CompilationMXBean for some reason. Does
CompilationMXBean.getTotalCompilationTime() include Truffle compile
time? Looking at the numbers it seems like it might not, but it's hard
to tell.
-Arthur
On 10/13/2017 01:17 AM, Petr Tůma wrote:
> Hi Arthur,
>
> some options, depending on what exactly you want:
>
> - you could catch the JVMTI CompiledMethodLoad event callback, this
> needs a C agent but otherwise should work quite well
>
> - you could query the CompilationMXBean in java.lang.management, this
> gives you the aggregate compilation time in milliseconds (this will
> jump forward on compilation end but sub millisecond compilation events
> will not be visible)
>
> - you can monitor the execution time of the compiler threads
>
> - you can enable the JVM compilation log (-XX:+PrintCompilation), this
> includes time relative to JVM start so can be correlated with
> benchmark iterations if they are long enough
>
> Some of these are implemented in
> https://github.com/D-iii-S/java-ubench-agent, you can take a look for
> inspiration.
>
> Hope this helps, Petr
>
>
> On 13/10/17 02:47, Arthur Peters wrote:
>> Is there any way to detect when Truffle/Graal compilations happen? (for
>> instance by getting a callback or even just accessing a count of how
>> many compilations have happened so I can check if it has changed.)
>>
>> I would like to have this information for my benchmarking so I can
>> easily tag repetitions of the benchmark that have a compilation. This
>> would be useful for analyzing how fast the code generated by the
>> compiler is independent of the compiler itself and visa versa.
>>
>> -Arthur
>>
>> PS: I'm not going to just remove all the repetitions with compilations.
>> That would not really represent the performance of the language. But it
>> would be nice to be able to do subgroup analysis.
>>
More information about the graal-dev
mailing list