Book Image

Oracle JRockit: The Definitive Guide

Book Image

Oracle JRockit: The Definitive Guide

Overview of this book

Oracle JRockit is one of the industry’s highest performing Java Virtual Machines. Java developers are always on the lookout for better ways to analyze application behavior and gain performance. As we all know, this is not as easy as it looks. Welcome to JRockit: The Definitive Guide.This book helps you gain in-depth knowledge of Java from the JVM’s point of view. We will explain how to write code that works well with the JVM to gain performance and scalability. Starting with the inner workings of the JRockit JVM and finishing with a thorough walkthrough of the tools in the JRockit Mission Control suite, this book is for anyone who wants to know more about how the JVM executes your Java application and how to profile for better performance.
Table of Contents (23 chapters)
Oracle JRockit
Credits
Foreword
About the Authors
Acknowledgement
About the Reviewers
Preface
12
Using the JRockit Management APIs
Bibliography
Glossary
AST
CAS
HIR
IR
JFR
JMX
JRA
JSR
LIR
MD5
MIR
PDE
RCP
SWT
TLA
Index

The general purpose heap analyzer


Yet another way to use the Memleak tool is as a general purpose heap analyzer. The Types panel shows relationships between the types (classes) on the Java heap. It can also list the specific instances in such a relationship. In the next example, we've found a peculiar cycle in our Type Graph. We can see that there are instances of Hashtable entries that are actually pointing back to their Hashtable. To list just the instances of Hashtable$Entry pointing to Hashtable, we simply right click on the number in the reference relation (see the following screenshot), and select List referring instances.

We have now, with a few clicks, been able to list all the Hashtable instances in the system that contain Hashtables. It is also easy to determine exactly where they are located in the system. Simply select an instance, add it to the Instance Graph and trace the shortest path back to the root referrer. Doing this for the first instance will reveal that it is located...