promotion failure?), or how the JVM has adjusted the tenuring threshold, or virtually any
other piece of data about how and why GC behaved as it did, JFR will be able to tell you.
JFR Code view
The Code page in Java Mission Control shows basic profiling information from the record-
Figure 3-11. Java Flight Recorder Code panel
The first tab on this page shows an aggregation by package name, which is an interesting fea-
ture not found in many profilers; unsurprisingly, the stock application spends 41% of its time
doing calculations in the java.math package. At the bottom, there are other tabs for the tra-
ditional profile views: the hot methods and call tree of the profiled code.
Unlike other profilers, JFR offers other modes of visibility into the code. The Throwables tab
provides a view into the exception processing of the application ( Chapter 12 has a discussion
of why excessive exception processing can be bad for performance). There are also tabs that
provide information on what the compiler is doing, including a view into the code cache (see