JEP 234: Additional Run-Time Compiler JVM Trace EventsJEP 234: Additional Run-Time Compiler JVM Trace EventsOwnerIgor IgnatyevTypeFeatureScopeImplementationStatusCandidateComponenthotspot / compilerDiscussionhotspot dash compiler dash dev at openjdk dot java dot netEffortMDurationMReviewed byAleksandre Iline, Mikael Vidstedt, Vladimir KozlovEndorsed byMikael VidstedtCreated2014/05/19 18:32Updated2021/10/22 17:17Issue8043473Summary
Extend the set of JVM trace events generated by the run-time compilers.
Success Metrics

No measurable performance overhead when not enabled.

Motivation
JEP 167 added infrastructure for
detailed tracing of the JVM.  It introduced a basic set of useful
run-time compiler events but that set doesn't provide any information
about which optimizations were used, what the optimizations did, why
compilation failed, and so forth.
Description
Define additional events that will add more detail to the workings of the
run-time compilers, useful for testing as well as profiling.
Some compilation phase events are already emitted by C2; we will extend
C1 to emit them as well, if needed.
Compilation phase events will provide information including a compilation
identifier and a representation of the method being compiled, or its
relevant characteristics, and be emitted at the end of a phase.  If a
compilation phase fails then an event describing the failure will
emitted.  Phases for which we will consider adding events are:

Parsing
High-level graph
Low-level Intermediate Representation
Machine-independent code
Assembly

Events about applied optimizations will include a compilation identifier
and describe the transformations performed.  The events will be emitted
when an optimization is completed.  Events will be defined for, at least,
all high-level optimizations, e.g.,

Inlining
Loop unrolling
Loop peeling

Other events which affect compilation and execution of a compiled method
will also be emitted, e.g.,

Deoptimization events
Uncommon trap events
Abnormal events for:

Node max limit hit
Maximum recursion depth hit



Alternatives
The white-box testing API can be used to get this information but it has
no facility for recording events for later analysis.
InstallingContributingSponsoringDevelopers' GuideVulnerabilitiesJDK GA/EA BuildsMailing listsWiki
                      · IRCBylaws · CensusLegalWorkshopJEP ProcessSource codeMercurialGitHubToolsGitjtreg harnessGroups(overview)AdoptionBuildClient LibrariesCompatibility & Specification ReviewCompilerConformanceCore LibrariesGoverning BoardHotSpotIDE Tooling & SupportInternationalizationJMXMembersNetworkingPortersQualitySecurityServiceabilityVulnerabilityWebProjects(overview,
      archive)AmberBabylonCRaCCaciocavalloClosuresCode ToolsCoinCommon VM InterfaceCompiler GrammarDetroitDevelopers' GuideDevice I/ODukeGalahadGraalIcedTeaJDK 7JDK 8JDK 8 UpdatesJDK 9JDK
      (…,
       21,
       22,
       23)JDK UpdatesJavaDoc.NextJigsawKonaKullaLambdaLanaiLeydenLilliputLocale EnhancementLoomMemory Model UpdateMetropolisMission ControlMulti-Language VMNashornNew I/OOpenJFXPanamaPenrosePort: AArch32Port: AArch64Port: BSDPort: HaikuPort: Mac OS XPort: MIPSPort: MobilePort: PowerPC/AIXPort: RISC-VPort: s390xPortolaSCTPShenandoahSkaraSumatraTiered AttributionTsanType AnnotationsValhallaVeronaVisualVMWakefieldZeroZGC

        © 2024 Oracle Corporation and/or its affiliates
        Terms of Use
        ·
        
            License: GPLv2
        · Privacy
        · Trademarks
