Comparative Call Graphs for Application Performance Regression Detection
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Identifying and addressing performance regressions in large, complex applications and systems is challenging due to their scale and complexity, with issues like increased computing resources usage and latency affecting operational costs and user experience, and pinpointing root causes is difficult due to heterogeneous hardware and software systems and masked performance changes.
Innovation Solution
The system evaluates application performance changes using comparative call graphs, generating a weighted call graph based on performance values between control and modified versions of a program, allowing developers to visually identify functions with performance regressions through a diverging color scheme and interactive user interface operations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If traditional performance monitoring methods are used in large complex applications, then performance data can be collected, but root cause identification becomes increasingly difficult and time-consuming due to system complexity
Solution Approach 1:
The patent segments the complex application performance data into function-level call graphs, breaking down the monolithic system into manageable functional units. Each node in the call graph represents a specific function, allowing developers to isolate and analyze performance issues at the function level rather than being overwhelmed by system-wide complexity.
Solution Approach 2:
The patent introduces call graphs as an intermediary visualization tool between raw performance data and root cause analysis. The call graphs serve as a mediator that transforms complex performance metrics into intuitive visual representations, making it easier to identify performance regressions and their sources without directly analyzing raw data from heterogeneous systems.
2Reliability
If detailed performance tracking is implemented across all functions, then performance regressions can be detected, but the complexity and computational overhead of analysis increases significantly
Solution Approach 1:
The patent applies local quality by focusing analysis on specific functions that exhibit performance regressions rather than uniformly analyzing all functions. The call graph visualization highlights only the functions and call paths relevant to performance issues, reducing analysis complexity while maintaining detection accuracy for problematic areas.
Solution Approach 2:
The patent implements partial action by selectively tracking and visualizing only the necessary performance data required for regression detection. Rather than analyzing every possible performance metric across all functions, the system focuses on capturing call graphs for functions where performance changes are detected, reducing overall analysis complexity while maintaining sufficient reliability.
3Adaptability or versatility
If performance data from heterogeneous hardware and software systems is aggregated, then comprehensive performance monitoring is achieved, but data consistency and comparison accuracy deteriorate
Solution Approach 1:
The patent implements universality by designing call graphs as a platform-agnostic visualization format that can represent performance data from heterogeneous systems uniformly. The call graph structure standardizes the representation of function calls and performance metrics across different hardware and software platforms, enabling accurate comparison despite source diversity.
Solution Approach 2:
The patent applies parameter changes by transforming raw performance metrics from various sources into standardized call graph parameters. The system converts diverse performance data into a common format with consistent node and edge attributes, allowing accurate comparison across heterogeneous systems while maintaining adaptability to multiple platforms.
4Loss of information
If comprehensive call graphs are generated for entire applications, then complete performance visibility is achieved, but visualization complexity and user analysis time increase
Solution Approach 1:
The patent extracts and highlights only the relevant portions of call graphs that contain performance regressions, rather than displaying complete call graphs for entire applications. The system identifies and extracts problematic call paths and functions, presenting them in a simplified view that maintains information about performance issues while removing extraneous details that would complicate analysis.
Data Source
AI summary
The disclosed computer-implemented method may include (1) receiving a set of control performance values and a set of modified performance values, (2) determining a set of comparative performance values based on the set of control performance values and the set of modified performance values, (3) generating a call graph based on the set of comparative performance values, the call graph including a set of nodes, each node corresponding to a function, the function corresponding to a particular comparative performance value included in the set of comparative performance values, and (b) a set of edges connecting the nodes based on relationships between the nodes, (4) weighting each node in accordance with the comparative performance value corresponding to the node, and (5) displaying the call graph via a user interface in accordance with the weighting of each node. Various other methods, systems, and computer-readable media are also disclosed.


