Generating Java trace data

Steven P. Reiss, Manos Renieris · 2000

We describe a system for gathering and analyzing Java trace data.The system provides relatively complete data collection from large Java systems.It also provides a variety of different analyses of that data for use with a software visualization system. INTRODUCTIONAs Java programs get larger and more complex, they become more difficult to understand.We have embarked on a project that attempts to use software visualization to provide this understanding.This paper describes the first part of that effort, a package that uses the JVMPI interface to collect and then analyze Java traces.Java was originally used for small scale applications such as applets or small clients for a more complex, non-Java server.Today, the language is being used for constructing large-scale systems including scientific and data-intensive applications.As the applications have increased in scale, understanding their structure and behavior has become both more important and more difficult.The authors of a large Java system need to understand what is going on inside the system as it is running.They need to see how the various threads interact, whether the system is over or under synchronized, where the performance bottlenecks are, how much memory is actually required, where objects are being allocated, where the memory leaks are, which classes are active when, and how the various classes in a complex system interact.Our approach to addressing such specific understanding problems is to provide programmers with a system that makes it easy to define software visualizations that can provide the answers quickly and efficiently [8][9][10][11].There are several aspects to such a system.The first is to provide a wide variety of relevant data that can be used to drive the visualization.Here we let the programmer combine both structural data describing the system with several different analyses of the trace data that is obtained by running the system.The second aspect of our visualization approach is to provide a framework to make it easy for programmers to specify what data they need to visualize to understand the problem at hand.Here we use a visual query language based on the universal relation assumption that lets programmers select the data of interest without having to know the structure of the underlying databases or how the different analyses are done.The final aspect of the visu-

Read the paper · More papers on PaperTik