IP Library › Granted Patent US 8,271,494
Granted Patent B2
US 8,271,494 · App. 12/964,869 · Granted Sep 18, 2012

Computer system performance analysis

Assignee: International Business Machines Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,271,494
App. No.
12/964,869
Granted
Sep 18, 2012
Kind
B2
Abstract

Methods and devices for splitting instructions into clusters based on significant offset gaps in top-down processing steps are provided. The methods and devices allow that comments on instruction clusters can be generated automatically or can be edited manually. The comments can be shared among users for the achievement of portability. Significant clusters can be recognized as hotspots based on predetermined metrics.

Claims (57)

1. A method for computer system performance analysis, comprising:

receiving a computer system performance log file;

clustering instructions involved in the computer system performance log file at flexible granularity to identify code clusters, wherein the clustering the instructions comprises

sorting all gaps in a descending order, the largest gap having a smallest number as its number, the numbers of the other gaps increasing in order, wherein the gap is the difference between the address of a current instruction and the address of a next instruction adjacent to the current instruction,

among all of the gaps, determining significant gaps which are significantly larger in relative to other gaps, and

identifying the corresponding instructions of the significant gaps to divide the codes into clusters,

wherein determining the significant gaps further comprises

determining a slope of each gap by

computing S=gap i /(N−i),

wherein S is the slope, gap i is the current gap, i is the ID of the current gap, and N is the total number of the gaps, and

determining a gap with such a slope the rate of which to the slope of the next gap is larger than a significant gap threshold, identifying the gap as a first significant gap and other gaps larger than or equal to the gap as significant gaps; and

outputting a result of computer system performance analysis based on the code clusters.

2. The method according to claim 1 , further comprising:

recognizing code clusters from the result of computer system performance according to a predetermined metric.

3. The method according to claim 2 , wherein the predetermined metric is a tick percentage and the significant code clusters are hotspots,

wherein the tick percentage is a rate of the ticks of a respective code cluster to a sum of the ticks, and the ticks are executing times of the respective code cluster counted by a counter.

4. The method according to claim 2 , wherein the predetermined metric is a tick density and the significant code clusters are hotspots, and

wherein the tick density is a rate of the ticks and the range of addresses of a respective code cluster, and the ticks are executing times of the respective code cluster counted by a counter.

5. The method according to claim 1 , further comprising:

applying median filtering on the values of ticks to remove noises;

binarizing the values of ticks using the average of the values of ticks as a threshold; and

clustering the codes further using the binarized values of ticks.

6. The method according to claim 1 , further comprising:

attaching comments about the code clusters to the respective clusters.

7. The method according to claim 6 , wherein the attaching comments about the code clusters to the respective clusters comprises:

matching the code clusters with the system performance analysis result to get corresponding code descriptions; and

commenting the code clusters with the code descriptions.

8. The method according to claim 6 , wherein the attaching comments about the code clusters to the respective clusters comprises:

calculating the distance between each code cluster and its adjacent cluster; and

commenting the code clusters with the distance.

9. A device for computer system performance analysis, comprising:

a performance log file receiver, executing using a processor, for receiving a computer system performance log file;

a clustering handler for clustering instructions involved in the computer system performance log file at flexible granularity to acquire code clusters, wherein the clustering handler implements the following instruction clustering at flexible granularity:

sorting all gaps in a descending order, the largest gap having a smallest number as its number, the numbers of other gaps increasing in order, wherein the gap is the difference between the address of a current instruction and the address of a next instruction adjacent to the current instruction,

among all of the gaps, determining significant gaps which are significantly larger in relative to other gaps, and

identifying instructions corresponding to the significant gaps to divide the codes into clusters,

wherein determining the significant gaps comprises:

determining a slope of each gap by:

computing S=gap i /(N−i),

wherein S is the sloe, gap i is the current gap, i is the ID of the current gap, and N is the total number of the gaps, and

determining a gap with such a slope the rate of which to the slope of the next gap is larger than a significant gap threshold, identifying the gap as a first significant gap and other gaps larger than or equal to the gap as significant gaps; and

a performance viewer for outputting the result of computer system performance analysis based on the code clusters.

10. The device according to claim 9 , wherein the clustering handler further comprises:

a hotspot generator for recognizing significant code clusters from the result of computer system performance according to a predetermined metric to generate a sorted list of the hotspots.

11. The device according to claim 10 , wherein the predetermined metric is tick percentage, and

wherein the tick percentage is the rate of the ticks of a respective code cluster to sum of the ticks, and the ticks are the executing times of the respective code cluster counted by a counter.

12. The device according to claim 10 , wherein the predetermined metric is tick density, and

wherein the tick density is the rate of the ticks and the range of addresses of a respective code cluster, and the ticks are the executing times of the respective code cluster counted by a counter.

13. The device according to claim 9 , wherein the clustering handler further comprises:

a threshold adjustor for automatically adjusting the significant gap threshold value according to user usages.

14. The device according to claim 9 , further comprising:

a comment generator for attaching meaning comments of the code clusters to the respective clusters.

15. The device according to claim 14 , wherein the comment generator matches the code clusters with the system performance analysis result to get the corresponding code descriptions, and then comments the code clusters with the code descriptions.

16. The device according to claim 14 , wherein the comment generator calculates the distance between each code cluster and its adjacent cluster, and then comments the code clusters with the distance.

17. The device according to claim 14 , wherein the comment generator comprises a suggestion supplier for supplying performance optimizations based on the statistics about the hotspots.

18. The device according to claim 14 , further comprising:

a comment inputting and outputting components for enabling the portability of the comments using fuzzy matching, and the performance viewer comprising a comment viewer for viewing the comments.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 10, 2010
From: HEISIG, STEPHEN JOHN; WANG, YAN QI; XIAO, JING; YUAN, YU; ZOU, JIA
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 025470/0502 →
Priority Claims (1)
CN 2010 1 0002096 · Jan 11, 2010 · national
Continuity (1)
Related Publication 20110173199A1 · Jul 14, 2011