Page 1 © 2001 Hewlett-Packard Company Tools for Measuring System and Application Performance Introduction GlancePlus Introduction Glance Motif Glance Character Mode Glance Command-line Xverbosegc HPjmeter and –Xeprof Other Tools
Page 2 © 2001 Hewlett-Packard Company HPjmeter Understanding Your Java Application’s Performance
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 3 HPjmeter Free and Easy to Use Analyzes Java application performance Graphical Free Runs on any platform
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 4 HPjmeter How To Collect Metrics HPjmeter java.eprof java.prof java.hprof.txt 1.1 Java 1.1.x JVMPI+ (HP-UX) Java Java Java 1.3.x JVMPI Java A and compatible Java C and compatible
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 5 HPjmeter JVMPI Options Options to use to any JVM: cpu=samples,thread=y,depth=10,cutoff=0,format=a heap=all,cpu=samples,thread=y,depth=10,cutoff=0,format=a monitor=y,cpu=samples,thread=y,depth=10,cutoff=0,format=a A support matrix for the features you need is online and in Help
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 6 HPjmeter JVMPI - Xrunhprof hprof usage: -Xrunhprof[:help]|[ =,...] Option Name/Value Description Default heap=dump|sites|all heap profiling all cpu=samples|times|oldCPU usage off monitor=y|n monitor contention n format=a|b ascii or binary outputa file= write data to file java.hprof(.txt) net= : send data over a socketwrite to file
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 7 hprof usage: -Xrunhprof[:help]|[ =,...] Option Name and Value Description Default depth= stack trace depth 4 cutoff= output cutoff point lineno=y|n line number in traces? y thread=y|n thread in traces? n doe=y|n dump on exit? y Example: java -Xrunhprof:cpu=samples,file=log.txt,depth=3 FooClass HPjmeter JVMPI - Xrunhprof
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 8 HPjmeter Enhanced Profiling for HP-UX Profiling option for HotSpot -Xeprof:help Collects CPU time separately per thread Very low intrusion
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 9 HPjmeter HP JVM’s -Xeprof Option Options to use for HP’s JVM: -Xeprof:file=java.$$.eprof Specify the $$ in the script with the java command to include the Process Identifier in the name and ensure files are not overwritten
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 10 HPjmeter SPEC JVM 98 Benchmark Low Intrusion! Faster than Classic
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 11 HPjmeter Elapsed (Wall Clock) and CPU Time Inclusive and Exclusive times Methods Classes Process Thread Call Graph Tree form Call hierarchy navigation Ability to find callers quickly!
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 12 HPjmeter Object Creation Allocated Objects Residual Objects Location in code where created Reference Graph –Tree form –Ability to find referencing objects
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 13 HPjmeter HP JVM’s -Xeprof Option Options to use for HP’s JVM: -Xeprof:file=java.$$.eprof Specify the $$ in the script with the java command to include the Process Identifier in the name and ensure files are not overwritten
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 14
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 15 Help: User’s Guide
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 16 How to run HPjmeter
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 17 Measure Object Creation
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 18 File: Open
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 19
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 20 Select File to Open
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 21 Open
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 22 Reading Thread Data
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 23 Creating Internal Data Structures
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 24 Program Information Elapsed Time Number of Methods Threads
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 25 Where’s the Time Going? CPU bound application Find method consuming highest amount of time Find location in call chain
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 26 Metrics
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 27 Exclusive Method Time (CPU)
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 28 Sorted in Decreasing Order
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 29 Select Highest
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 30 Mark Selected Item to Find
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 31 Switch to Call Tree
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 32
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 33 Find Selected Item Immediately
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 34 Automatic Expansion Double-click for All Callers
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 35
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 36 Overloaded Methods Distinguish by Parameters
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 37 View:Arguments
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 38
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 39
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 40 Arguments Displayed
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page Select 2. Mark to Find
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 42 Find Immediately
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 43
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 44 Exceptions Bad programming practice to use as: Terminators for searches Indicators of a frequent exception condition HPjmeter makes them easy to find Guess:Exceptions Thrown
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 45 Guess:Exceptions Thrown
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 46
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 47
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 48 Select Highest
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 49 Mark to Find
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 50 Switch to: Call Graph Call Count
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 51 Find Immediately
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 52 Automatic Expansion Find Called Methods
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 53 Click on “o->” to Expand
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 54
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 55
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 56
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 57 Double-click for All Callers
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 58
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 59 Start new search: Tree:Collapse All
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 60 Select Next Highest
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 61 What Exceptions?
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 62 Expand
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 63 Empty Stack Exception!
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 64 Select Next Highest
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 65
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 66 Empty Stack Exception!
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 67 Investigate Others: Date
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 68 Illegal Argument Exception!
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 69 HPjmeter Threads Thread Lifetimes Thread states - CPU, I/O, Waiting, GC,... Color coded to emphasize important performance characteristics Distribution over lifetime Visualize thread starvation Sort Thread Histogram by: Birth time of thread Heuristic based on each thread’s metrics CPU time used by method in Find pop-up
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 70 Threads Histogram
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 71
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 72 Double-click for Pie Chart
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 73 Massive Lock Contention!
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 74
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 75 HPjmeter Java Application Monitor Contention Highlights contested Java monitors JDK – Exact metrics generated for contention Metrics: Lock requests when lock held Per-method time spent waiting for lock
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 76 Metric: Total Lock Delay
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 77
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 78 Mark Selected Item to Find
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 79 Display Contents of Find Edit:Find
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 80
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 81 Threads Histogram More Work Done
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 82
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 83
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 84 Sort by _service()
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 85
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 86 Switch to Thread View Scope:Thread
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 87
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 88 Select Thread
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 89
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 90 Metric: Total Lock Delay
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page spent in _service()
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 92 How much total time spent in _service()? Metric: Exclusive Clock
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page spent in _service()
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 94 97% (103343/106989) spent in waiting for lock in _service()
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 95 Save Metric to File
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 96
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 97
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 98 Exclusive Method Time (CPU)
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 99
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 100
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 101
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 102
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 103
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 104
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 105
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 106
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 107
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 108 HPjmeter Object Creation Allocated Objects Residual Objects Location in code where created Reference Graph –Tree form –Ability to find referencing objects
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 109 HPjmeter Object Creation Created Objects Count with -Xeprof requires either: -Xeprof:inlining=disable or: -Xint -Xeprof Created Objects (Bytes) requires use of the the Classic JVM and hprof: java -classic -Xrunhprof:heap=all,cutoff=0,...
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 110
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 111
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 112
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 113
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 114
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 115
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 116
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 117
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 118
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 119 HPjmeter Profile Comparison Compare profile data from two different runs – See impact of – Code modification – Load change – Eliminate start-up noise – Find “memory retention”
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 120 HPjmeter Profile Comparison
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 121 HPjmeter Profile Comparison More Work Done
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 122 HPjmeter Other Features Search Mark and Find Save displayed metrics to a file On-line help
Tools for Measuring Performance © 2001 Hewlett-Packard Company Page 123 HPjmeter Contact Info Web links: Write to us: