Software Performance Prediction via Artificial Degradation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Complex software systems present challenges in determining where to apply efforts to improve performance due to their non-linear nature, making it difficult to predict how changes in individual components affect overall system performance.

Innovation Solution

Analyzing the effects of artificial performance degradations inserted into individual components allows for predicting potential performance improvements by measuring system-wide effects, enabling ranking of components by the improvement required to achieve specific overall system improvements, and allocating development resources effectively.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If microbenchmarks are used to test individual components, then component-level performance can be measured, but the results do not accurately reflect system-level performance improvements

Engineering Contradiction:
Improvecomponent performance measurementVSAvoidprediction accuracy for system performance
Core Design Contradiction:
Measurement precisionVSReliability

Solution Approach 1:

The patent combines multiple measurement approaches by integrating microbenchmark results with system benchmark results. The performance predictor merges component-level measurements with system-level measurements to generate weighted performance values, thereby resolving the contradiction between component-level precision and system-level reliability.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The system implements feedback by comparing predicted system performance improvements against actual system benchmark measurements. The performance predictor uses this feedback to adjust weights and refine predictions, ensuring that component-level measurements accurately reflect system-level performance.

Inventive Principle:
Principle #23Feedback

2Productivity

If development efforts are applied to improve individual components, then component performance increases, but system-wide performance improvement is difficult to predict due to non-linear interactions

Engineering Contradiction:
Improvecomponent performanceVSAvoidsystem performance prediction complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent changes the parameter representation by using performance weights that quantify each component's contribution to system performance. These weights transform complex non-linear interactions into manageable parameters that can be used for predictable system-wide performance improvement.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The system performs preliminary analysis by measuring system performance with each component at different performance levels before actual development. This preliminary data collection enables accurate prediction of system-wide improvements before development resources are committed.

Inventive Principle:
Principle #10Preliminary action

3Difficulty of detecting and measuring

If system performance is analyzed by determining critical paths, then performance bottlenecks can be identified, but this approach is difficult or impossible due to complex non-linear nature

Engineering Contradiction:
Improvebottleneck identificationVSAvoidsystem analysis complexity
Core Design Contradiction:
Difficulty of detecting and measuringVSDevice complexity

Solution Approach 1:

The patent segments the complex system into individual measurable components, each with assigned performance weights. This segmentation allows bottleneck identification without requiring complex critical path analysis, as the weighted performance metrics directly indicate which components most impact system performance.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS7703079B1System performance prediction
Publication Date: 2010.04.20 ORACLE AMERICAN INC
  • US7703079B1 patent drawing
  • US7703079B1 patent drawing
  • US7703079B1 patent drawing

AI summary

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.