IP Library Granted Patent US 7,703,079
Granted Patent B1
US 7,703,079 · App. 11/120,901 · Granted Apr 20, 2010

System performance prediction

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,703,079
App. No.
11/120,901
Granted
Apr 20, 2010
Kind
B1
Abstract

Overall system performance improvements resulting from improvements to individual system components may be predicted by analyzing the effects of artificial performance degradations inserted into the individual components. Measuring and analyzing a negative overall system effect caused by negative changes to an individual component may predict a positive overall system performance improvement resulting from an improvement to the individual component of similar magnitude to the inserted negative changes. System performance prediction may be used to analyze and predict system performance changes related to various computing resources, such as execution time (speed), memory usage, network bandwidth, file I/O, and/or disk storage space, among others. Additionally, by comparing predicted system performance improvements resulting from potential improvements to various components of a software system, the individual components may be ranked according to the amount of improvement required to realize the predicted system performance improvements.

Claims (44)

1. A method for predicting an overall system performance change based on changes to an individual component, comprising:

inserting a plurality of performance degradations of different magnitude values relative to a baseline value into a component of a software system, wherein the software system comprises a plurality of components;

for each inserted performance degradation, measuring a respective overall system performance change corresponding to the inserted performance degradation;

constructing a best-fit function for data representing the individual magnitude value of each individual performance degradation related to a value of the overall system performance change resulting from each individual performance degradation; and

extrapolating the best-fit function to one or more data points each representing a potential performance improvement and each having a negative value as opposed to the magnitude values for the performance degradations to determine one or more predicted values of expected overall system performance change expected from implementing the one or more respective potential performance improvements to the component without actually implementing the one or more respective potential performance improvements to the component.

2. The method of claim 1 , wherein said inserting a plurality of performance degradations comprises instrumenting the component to insert one or more program instructions configured to implement each of the performance degradations.

3. The method of claim 1 , wherein each of the plurality of performance degradations comprises a delay in execution time.

4. The method of claim 1 , wherein said extrapolating comprises:

determining one or more pairs of predicted system performance increases and respective required component performance increases for the component.

5. The method of claim 1 , wherein the best-fit function comprises a straight-line function.

6. The method of claim 1 , further comprising determining a baseline benchmark system performance measurement for the software system prior to said inserting a plurality of performance degradations, wherein the system performance changes comprise percentages of the baseline benchmark system performance measurement.

7. The method of claim 6 , wherein said determining a baseline benchmark system performance measurement for the software system comprises measuring a benchmark performance measurement for the component.

8. The method of claim 1 , wherein said extrapolating comprises determining a predicted performance percentage increase for the component required to obtain a desired system performance percentage increase for the software system.

9. The method of claim 1 , further comprising:

performing said inserting, said determining, said constructing, and said extrapolating for two or more components of the plurality of components to determine one or more predicted overall system performance increases for each of the two or more components corresponding to one or more respective performance improvements in each of the two or more components; and

ranking the two or more components according to their respective one or more predicted overall system performance increases and respective one or more performance improvements.

10. The method of claim 9 , further comprising applying software development resources to the two or more components according to said ranking.

11. The method of claim 9 , further comprising receiving user input specifying the two or more components.

12. The method of claim 9 , further comprising automatically determining the two or more components based on a common program component accessed by each of the two or more components.

13. The method of claim 9 , further comprising automatically determining the two or more components based on a common program component accessing each of the two or more components.

14. A system for predicting an overall system performance change based on changes to an individual component, comprising:

a processor; and

a memory coupled to the processor, wherein the memory comprises program instructions executable by the processor to:

insert a plurality of performance degradations of different magnitude values relative to a baseline value into a component of a software system, wherein the software system comprises a plurality of components;

for each inserted performance degradation, measure a respective overall system performance change corresponding to the inserted performance degradation;

construct a best-fit function for data representing the individual magnitude value of each individual performance degradation related to a value of the overall system performance change resulting from each individual performance degradation; and

extrapolate the best-fit function to one or more data points each representing a potential performance improvement and each having a negative value as opposed to the magnitude values for the performance degradations to determine one or more predicted values of expected overall system performance change expected from implementing the one or more respective potential performance improvements to the component without actually implementing the one or more respective potential performance improvements to the component.

15. The system of claim 14 , wherein, in inserting a plurality of performance degradations, the program instructions are further configured to instrument the component to insert one or more program instructions configured to implement each of the performance degradations.

16. The system of claim 14 , wherein, in said extrapolating, the program instructions are further configured to:

determine one or more pairs of predicted system performance increases and respective required component performance increases for the component.

17. The system of claim 14 , wherein the program instructions are further configured to:

perform said inserting, said determining, said constructing, and said extrapolating for two or more components of the plurality of components to determine one or more predicted overall system performance increases for each of the two or more components corresponding to respective one or more performance improvements in each of the two or more components; and

rank the two or more components according to their respective one or more predicted overall system performance increases and respective one or more performance improvements.

18. A computer accessible medium, comprising program instructions for predicting an overall system performance change based on changes to an individual component, wherein the program instructions are computer-executable to implement:

inserting a plurality of performance degradations of different magnitude values relative to a baseline value into a component of a software system, wherein the software system comprises a plurality of components;

for each inserted performance degradation, measuring a respective overall system performance change corresponding to the inserted performance degradation;

constructing a best-fit function for data representing the individual magnitude value of each individual performance degradation related to a value of the overall system performance change resulting from each individual performance degradation; and

extrapolating the best-fit function to one or more data points each representing a potential performance improvement and each having a negative value as opposed to the magnitude values for the performance degradations to determine one or more predicted values of expected overall system performance change expected from implementing the one or more respective potential performance improvements to the component without actually implementing the one or more respective potential performance improvements to the component.

19. The computer accessible medium of claim 18 , wherein, in inserting a plurality of performance degradations, the program instructions are computer-executable to implement instrumenting the component to insert one or more program instructions configured to implement each of the performance degradations.

20. The computer accessible medium of claim 18 , wherein, in said extrapolating, the program instructions are computer-executable to implement:

determine one or more pairs of predicted overall system performance increases and respective required component performance increases for the component.

21. The computer accessible medium of claim 18 , wherein the program instructions are computer-executable to implement:

performing said inserting, said determining, said constructing, and said extrapolating for two or more components of the plurality of components to determine one or more predicted system performance increases for each of the two or more components corresponding to respective one or more performance improvements in each of the two or more components; and

ranking the two or more components according to their respective one or more predicted system performance increases and respective one or more performance improvements.

Assignments (1)
MERGER AND CHANGE OF NAME Recorded Dec 16, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037306/0268 →