Profvis

Profvis is a visualisation tool that helps developers navigate the HPROF output of unfamiliar programs, developed in collaboration with my student Shen Lin, and my colleagues Tom Ormerod and Linden Ball from Lancaster's Department of Psychology. Profvis exploits the structural information present in profiling call trees to selectively raise or lower the abstraction level at which performance data is presented, greatly simplifying the task of exploring complex profiling data.

Latest version:

profvis-2011-05-05_15-50-31.tgz (updated 5/5/2011)

How to use

Before using Profvis, you'll need to obtain some profiling traces you want to visualise. Profvis works on HPROF output files that are generated either with the 'cpu=samples' (for CPU profiling) or 'heap=sites' (for memory profiling) options. For instance:

java -agentlib:hprof=file=cpu.txt,cpu=samples,interval=1000,depth=200 bubbleSort.BubbleSortExample
java -agentlib:hprof=file=heap.txt,heap=sites,depth=200 bubbleSort.BubbleSortExample

(Please see the HPROF documentation for more detail.)

To view you traces (saved in the file 'cpu.txt' and 'heap.txt' in the above examples), simply unpack the profvis archive, and add the resulting directory to your PATH variable (on Unix-like systems---a equivalent script for Windows will come soon hopefully.) Alternatively you can create a symbolic link to the 'profvis' executable (in effect a shell script that sets all the necessary JAVA environment).

You should then be able to visualise your profiling traces with:

profvis <your_hprof_file>

Which should give you something like:

[ProfvisSnapShotMedium.png]
Fig. 1: Navigating a Hprof heap site profiling file with profvis
 

Type 'profvis -h' for a full set of options. (Caution: some are still experimental.)

Check the videos! The first one demonstrates profvis's animation capabilities on a Globus trace, and the second provides a short tutorial of Profvis' basic workings.

Related Publication(s):
[Maison.png]Back to Home

 
Last generated on 5 Feb 2020       francois.taiani@irisa.fr     Valid HTML 4.0!