Patent ID: 7747653

Claim:
A process of analyzing performance of a computer program comprising a plurality of components, the program being executable by carrying out a plurality of calling sequences, each calling sequence comprising a plurality of invocations of the methods, the process comprising steps of: using an interface device configured to receive: a call tree profile comprising a plurality of subtrees representing components, wherein each component comprises a plurality of leaf nodes, each leaf node representing an invocation within said leaf node's parent component, and each node being annotated with a cumulative performance cost for the invocation; at least one component from the call tree profile that is of interest to a user from a performance tuning perspective; and a threshold level of a cumulative performance cost associated with the invocations of the at least one component that constitutes an expensive method invocation; and using a processor device to compute a set of expensive method invocations of interest using a combination of filtering and thresholding, wherein said computing step comprises steps of: analyzing the call tree profile for performance hotspot invocations in components of interest and from a perspective of the leaf nodes, wherein the performance hotspots are identified based on a user-defined threshold value, the analyzing step comprising: assigning performance blame to individual components; using a threshold value that reduces a number of invocations within a component that are responsible for an overall cost of the component; selecting the nodes pertaining to the at least one component of interest to the user; comparing the cost of each of the selected nodes to the threshold value; computing a segmented cumulative cost for each invocation, wherein the segmented cumulative cost comprises rolled up costs of the invocation's callee that were identified as uninteresting minus a cost of callees that were identified as interesting; selecting from the selected nodes only the invocations whose segmented cumulative cost exceeds the threshold level to produce the set of expensive method invocations of interest; pruning a set of non-selected invocations from the call tree profile; performing a components-based breakdown of the performance of the computer program; reducing a number of invocations and presenting to the user a list of costs associated with only the selected invocations.