Software Module Invocation Sequence Analysis for Bottleneck Detection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Identifying and addressing performance bottlenecks in software applications is challenging due to the complexity of module invocations and resource consumption during execution.

Innovation Solution

A method is introduced to identify and notify long sub-sequences of module invocations that occur frequently, forming a log of super-sequences and examining their frequency to pinpoint potential bottlenecks, allowing administrators to examine these sequences for optimizations and resource management.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Difficulty of detecting and measuring

If module invocation sequences are logged and analyzed to identify performance bottlenecks, then performance investigation capability is improved, but system complexity and overhead increase

Engineering Contradiction:
Improveperformance bottleneck detectionVSAvoidsystem complexity
Core Design Contradiction:
Difficulty of detecting and measuringVSDevice complexity

Solution Approach 1:

The system segments the module invocation sequences into super-sequences by grouping invocations that occur within a time threshold of each other. This segmentation allows the system to manage complexity by organizing raw invocation data into meaningful patterns, making bottleneck detection more manageable while reducing the overhead of analyzing every individual invocation in detail.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary actions by pre-defining time thresholds and super-sequence criteria before actual performance analysis is needed. This preparation allows the system to automatically organize and filter invocation data during runtime without adding significant computational overhead, as the grouping logic is established in advance based on configurable parameters.

Inventive Principle:
Principle #10Preliminary action

2Measurement precision

If frequent module invocations are identified through super-sequence analysis, then bottleneck identification accuracy is improved, but processing time and computational resources increase

Engineering Contradiction:
Improvebottleneck identification accuracyVSAvoidprocessing time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The system dynamically adjusts the time threshold parameter based on the specific performance analysis requirements and workload characteristics. This dynamic adaptation allows the system to optimize between processing speed and identification accuracy by adjusting the super-sequence formation criteria to match the actual performance bottlenecks being investigated, rather than using a fixed threshold that may be too conservative or aggressive.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes parameters such as the time threshold for super-sequence formation and the minimum frequency threshold for identifying bottlenecks based on the analysis context. By adjusting these parameters, the system can optimize the balance between processing time and accuracy, allowing faster analysis when approximate results are acceptable and more thorough analysis when precision is critical.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10896115B2Investigation of performance bottlenecks occurring during execution of software applications
Publication Date: 2021.01.19 ORACLE INT CORP
  • US10896115B2 patent drawing
  • US10896115B2 patent drawing
  • US10896115B2 patent drawing

AI summary

An aspect of the present disclosure aids investigation of performance bottlenecks occurring during execution of software applications. In an embodiment, a set of long sub-sequences of invocations of modules occurring frequently during execution of a software application are identified. Such identified sub-sequences are notified to a user (e.g., administrator) for examination of any performance bottlenecks during execution of the software application. According to another aspect, a log is formed containing super-sequences of invocation of modules formed during execution of the software application. The log is examined to identify a respective frequency of occurrence of multiple sub-sequences of invocations, wherein the set of long sub-sequences are identified based on the identified frequencies and respective length (i.e., number of modules in the sequence) of each of the plurality of sub-sequences of invocations.