Run-Time Performance Analysis via Call-Graph Extraction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current methods face difficulties in efficiently testing and analyzing the performance and test exhaustiveness of computer applications across multiple environments, as existing techniques lack effective algorithms and tools for thorough simulation and diagnosis.

Innovation Solution

A method involving the extraction of a computer program from one environment to another, parsing it to generate a hierarchical representation, inserting log value generation instructions, and analyzing the generated log values against thresholds to identify and alert on performance issues, using a device with components for code extraction, parsing, enhancement, re-injection, and analysis.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If automated performance diagnosis using call-graph is implemented, then performance analysis capability is improved, but it does not address multiple application environments limiting versatility

Engineering Contradiction:
Improveperformance analysis capabilityVSAvoidmulti-environment support
Core Design Contradiction:
Measurement precisionVSAdaptability or versatility

Solution Approach 1:

The patent creates a universal performance analysis system that can operate across multiple application environments (SAP, Windows, etc.) by extracting call-graph information from different environments and processing it through a common analysis framework. The system uses environment-agnostic data structures and algorithms that can handle various programming languages and runtime environments, making the performance diagnosis tool versatile and adaptable to different platforms.

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

2Reliability

If rigorous testing simulations are performed before final release, then application quality is improved, but technical difficulties arise in implementing efficient test simulations

Engineering Contradiction:
Improveapplication qualityVSAvoidtest simulation implementation complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent creates simplified copies or models of the application's call-graph structure and execution flow that can be analyzed without running full-scale testing simulations. By extracting essential control flow information and creating abstract representations, the system enables quality assessment without the complexity of comprehensive runtime testing, thus maintaining reliability while reducing implementation complexity.

Inventive Principle:
Principle #26Copying

3Reliability

If comprehensive algorithms are developed to test application adequately, then test exhaustiveness is improved, but technical difficulties arise in devising such algorithms

Engineering Contradiction:
Improvetest exhaustivenessVSAvoidalgorithm complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the complex problem of comprehensive application testing into manageable parts by analyzing the call-graph structure in hierarchical levels. It divides the algorithm into modules that handle different aspects: call-graph extraction, dominance relationship calculation, performance bottleneck identification, and threshold-based alerting. This segmentation makes the overall algorithm more manageable and implementable while maintaining test exhaustiveness.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentEP2535813B1Method and device for generating an alert during an analysis of performance of a computer application
Publication Date: 2018.08.15 ACCENTURE GLOBAL SERVICES LTD
  • EP2535813B1 patent drawingFigure 1~2
  • EP2535813B1 patent drawingFigure 3A
  • EP2535813B1 patent drawingFigure 3B

AI summary

The invention concerns a method for performing a run-time simulation of a computer program comprising: extracting said computer program from a first application environment to a second application environment; parsing said computer program to generate a hierarchical representation of said computer program; based on said hierarchical representation, inserting at least one log value generation instruction into said extracted computer program to generate an enhanced computer program; re-injecting said enhanced computer program into said first application environment; executing, in said first application environment, said enhanced computer program; and receiving from said first application environment generated log values and analysing said values with respect to a hierarchical representation of said computer program.