Software Performance Prediction via Artificial Degradation
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
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
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.
Data Source
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.


