Comparative Call Graphs for Application Performance Regression Detection

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveperformance measurement capabilityVSAvoidroot cause identification difficulty
Core Design Contradiction:
Measurement precisionVSDifficulty of detecting and measuring

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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

Engineering Contradiction:
Improveperformance regression detection accuracyVSAvoidanalysis system complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

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.

Inventive Principle:
Principle #3Local quality

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.

Inventive Principle:
Principle #16Partial or excessive action

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

Engineering Contradiction:
Improvemulti-platform monitoring capabilityVSAvoidperformance comparison accuracy
Core Design Contradiction:
Adaptability or versatilityVSMeasurement precision

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.

Inventive Principle:
Principle #6Universality (Multi-functionality)

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.

Inventive Principle:
Principle #35Parameter changes

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

Engineering Contradiction:
Improveperformance information completenessVSAvoiddeveloper analysis ease
Core Design Contradiction:
Loss of informationVSEase of operation

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.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS10365905B1Systems and methods for evaluating application performance changes via comparative call graphs
Publication Date: 2019.07.30 META PLATFORMS INC
  • US10365905B1 patent drawing
  • US10365905B1 patent drawing
  • US10365905B1 patent drawing

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.