Jump to Content
  Previous Next
Content starts here

How Does the JRA System Work?

The JRA system consists of two parts (see Figure 1-1): one part inside the JRockit JVM that collects data and saves it, and an analysis tool that visualizes the information to make it useful to the end-users. The JRockit-internal part produces a recording of the system's runtime behavior during a user specified period of time, typically a few minutes. The recording results in an XML file that JRockit writes to disk and automatically launches in the JRA tool once the recording is complete (this behavior is valid for JRockit 5.0; for JRockit 1.4, the file is saved to disk and you need to locate it first to open it).

The recording is a great way to share how JRockit has worked with your application. You can also use several recordings to compare and contrast how different command line options change the behavior of your application, for example, by creating before-and-after recordings. When sending trouble reports to the BEA JRockit support department, you are required to attach a JRA recording to your trouble report. The recording is analyzed "offline" by the Runtime Analyzer tool.

Figure 1-1 The BEA JRockit Runtime Analyzer System

The BEA JRockit Runtime Analyzer System

The recording engine uses several sources of information including the JRockit Hot Spot Detector (also used by the optimization engine to decide what methods to optimize), the operating system, the JRockit Memory System (most notably the garbage collector), and the JRockit lock profiler, if enabled.

What is a JRA recording?

It is a collection of data about the JVM that can be used to analyze the doings and happenings of JRockit. It is also a "flight recording" of what has happened in the JVM when running the JRA.

What is the JRA tool?

The JRockit Runtime Analyzer tool is a Java application that parses a previously produced JRA recording and visualizes the data. This is a convenient way to analyze the data offline. The size of the compressed recording is on the order of a few hundred kilobytes, so a system administrator can easily make a recording of a deployed system and send it to the JVM or application developer who probably is in a better position to analyze it.

The JRA tool shows a top list of the hottest methods where you can select a method and see its call tree, i.e. its predecessors (what other methods have called this method) and successors (what methods the selected method will call). A percentage for each branch indicates how common a given path is.

As for memory management, there is a graph of the varying heap usage and pause times for the garbage collections. Detailed information about each GC shows exactly how much memory was released in a collection. There are also pie charts showing the distributions in size of free memory blocks and the distribution of occupied memory in small and large object chunks.

  Previous Next