1. Java Flight Recorder provides the best possible visibility into the JVM, since it is
built into the JVM itself.
2. Like all tools, JFR introduces some level of overhead into an application. For
routine use, JFR can be enabled to gather a substantial amount of information
with low overhead.
3. JFR is useful in performance analysis, but it is also useful when enabled on a pro-
duction system so that you can examine the events that led up to a failure.
Good tools are key to good performance analysis; in this chapter, we've just scratched the
surface of what tools can tell us. The key things to keep in mind are:
▪ No tool is perfect, and competing tools have relative strengths. Profiler X may be a good
fit for many applications, but there will always be cases where it misses something that
Profiler Y points out quite clearly. Always be flexible in your approach.
▪ Command-line monitoring tools can gather important data automatically; be sure to in-
clude gathering this monitoring data in your automated performance testing.
▪ Tools rapidly evolve: some of the tools mentioned in this chapter are probably already
obsolete (or at least have been superseded by new, superior tools). This is one area where
it is important to keep up-to-date.