RFC (M) 8058968: Compiler time traces should be improved
aleksey.shipilev at oracle.com
Tue Sep 23 15:56:03 UTC 2014
Current C1/C2 compiler time tracing is old and rusty: we have separate
VM options for C1 and C2 compilers; C2 tracking ignores CompilerBroker
(mostly), and doing the tracking on its own; bailouts and invalidates
are ignored in time tracks; and significant parts of compiler code are
not timed accurately.
We need to fix that for any future compiler performance work to succeed.
Our next stop in Nashorn/warmup performance endeavor would probably be
the native compilers performance.
I submitted this RFE to track:
Current patch is here, and comments are welcome:
This code was only compiled on my dev Linux x86_64, and haven't yet been
Summary of changes:
* Removes -XX:-TimeCompiler and -XX:-TimeCompiler2, and uses
-XX:+CITime and -XX:+CITimeVerbose consistently.
* CompilerBroker is now responsible for printing the stats for both C1
* CompilerBroker now counts the time spent in bailed out compilations
as well. We are spending significant time there in Nashorn (bug to
follow), and omitting these compilation from total times ruin the
summaries (i.e. "C1+C2 > Total" looks really weird.
* C2 probes are turned into a product probes: there is little reason to
have them in fastdebug only, because our performance workloads are
executed with product bits, and we need statistics there. C1 already
does it in product mode.
* C2 probes are collapsed into a array, and enumerated event names are
used, like in C1.
* Additional C1 and C2 probes are added to cover "blind spots".
Compare the output:
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 819 bytes
Desc: OpenPGP digital signature
More information about the hotspot-compiler-dev