IP Library Granted Patent US 7,765,094
Granted Patent B2
US 7,765,094 · App. 11/253,964 · Granted Jul 27, 2010

Method and system for performance profiling of software

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 7,765,094
App. No.
11/253,964
Granted
Jul 27, 2010
Kind
B2
Abstract

Performance profiling of software by producing a performance profile of a software processing unit and performing statistical analysis on the performance profile by matching the performance profile with at least one additional performance profile. An algorithmic approach is used to match data related to processes and/or threads and/or similar processing units (PU) over multiple performance profiles. One purpose of the matching algorithm is to identify such PU in order to enable computation of an accumulated or averaged dataset over multiple profiling periods. Various matching strategies, filters, and preprocessing techniques are described, together with level of reliability estimation.

Claims (54)

1. A computer-implemented method of performance profiling software, comprising:

producing a plurality of performance profiles of a software processing unit;

performing statistical analysis on the plurality of performance profiles;

determining a plurality of confidence intervals for the plurality of performance profiles; and

determining a level of reliability metric for a performance profile from the plurality of confidence intervals.

2. The method of claim 1 , wherein the step of performing statistical analysis comprises matching the performance profiles with at least one additional performance profile.

3. The method of claim 2 , further comprising storing in the performance profiles an indication of a matching strategy used in the step of matching.

4. The method of claim 2 , wherein the step of matching comprises matching data related to at least one of processes, threads, and similar processing units, over the plurality of performance profiles.

5. The method of claim 2 , wherein the step of matching uses a matching strategy based on at least one of matching on process unit identifiers, simple matching on processing duration, matching on processing duration through clustering, and labeled matching at a predetermined level.

6. The method of claim 2 , further comprising preprocessing based on at least one of processing unit processor affinity, containment of predetermined characterized data, and processing unit relevance.

7. The method of claim 2 , further comprising storing in the performance profile a unique identifier correlated to a matching strategy used in the step of matching.

8. The method of claim 1 , further including:

determining if external noise in the performance profile does not exceed a predetermined limit, where external noise is defined as a variation in the performance profile caused by other processing units and applications; and

conducting the statistical analysis based on the external noise determining.

9. The method of claim 8 , wherein the step of determining if external noise in the performance profile does not exceed a predetermined limit comprises at least one of:

determining processing duration of a single processing unit,

determining processing duration of the performance profile,

testing for same matching strategy across the plurality of profiles,

testing for same environment across the plurality of profiles, and

testing for maximal deviation in processing duration across the plurality of profiles.

10. The method of claim 1 , wherein the step of determining a level of reliability metric further comprises:

determining an amount of processing necessary to produce the level of reliability metric having a value greater than a predetermined value.

11. The method of claim 10 , further comprising applying a Bonferroni correction.

12. A computer program product tangibly embedded in a storage unit, comprising computer program means for instructing a computer to perform the method of claim 1 .

13. A system for performance profiling software, comprising:

means for producing a plurality of performance profiles of a software processing unit;

means for performing statistical analysis on the plurality of performance profiles;

means for determining a plurality of confidence intervals for the plurality of performance profiles; and

means for determining a level of reliability metric for a performance profile from the plurality of confidence intervals.

14. The system of claim 13 , wherein the means for performing statistical analysis comprises means for matching the performance profiles with at least one additional performance profile.

15. The system of claim 14 , further comprising means for storing in the performance profiles an indication of a matching strategy used by the means for matching.

16. The system of claim 14 , wherein the means for matching comprises means for matching data related to at least one of processes, threads, and similar processing units, over the plurality of performance profiles.

17. The system of claim 14 , wherein the means for matching is arranged to use a matching strategy based on at least one of:

matching on process unit identifiers,

simple matching on processing duration,

matching on processing duration through clustering, and

labeled matching at a predetermined level.

18. The system of claim 14 , further comprising means for preprocessing based on at least one of:

processing unit processor affinity,

containment of predetermined characterized data, and

processing unit relevance.

19. The system of claim 14 , further comprising means for storing in the performance profile an identifier correlated to a matching strategy used by the means for matching.

20. The system of claim 13 , further including:

means for determining if external noise in the performance profile does not exceed a predetermined limit, where external noise is defined as a variation in the performance profile caused by other processing units and applications; and

means for conducting the statistical analysis based on the external noise determining.

21. The system of claim 20 , wherein the means for determining if external noise in the performance profile does not exceed a predetermined limit comprises means for at least one of:

determining processing duration of a single processing unit,

determining processing duration of the performance profile,

testing for same matching strategy across the plurality of profiles,

testing for same environment across the plurality of profiles, and

testing for maximal deviation in processing duration across the plurality of profiles.

22. The system of claim 13 , wherein the means for determining a level of reliability metric further comprises:

means for determining an amount of processing necessary to produce the level of reliability metric having a value greater than a predetermined value.

23. The system of claim 22 , further comprising means for applying a Bonferroni correction.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 13, 2015
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: LINKEDIN CORPORATION
Reel/Frame 035201/0479 →
CORRECTIVE ASSIGNMENT TO CORRECT THE 2ND ASSIGNOR'S EXECUTION DATE PREVIOUSLY RECORDED AT REEL 016827 FRAME 0760. ASSIGNOR CONFIRMS THE ASSIGNMENT. Recorded Jan 25, 2006
From: BODDEN, ERIC; GOODFELLOW, CHRISTOPHER JAMES ROBIN; HELLYER, HOWARD
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 017300/0645 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 7, 2005
From: BODDEN, ERIC; GOODFELLOW, CHRISTOPHER JAMES ROBIN; HELLYER, HOWARD
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 016861/0069 →