Visualizing Recursive Method Calls in Software Performance Plots

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional methods for visually plotting the performance of method calls in software debugging fail to accurately represent recursive method invocations, leading to incorrect conclusions about performance issues due to the masking of nested calls.

Innovation Solution

A method and system for graphically representing recursive method calls by tracing entry and exit points, creating data point objects to track execution times, and displaying recursive relationships in a visual plot, allowing for accurate representation of nested calls.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If conventional bar chart plotting is used to display method execution time, then the visual plot is simple and easy to generate, but recursive method calls are not apparent and lead to incorrect performance conclusions

Engineering Contradiction:
Improveease of plot generationVSAvoidrecursive relationship information
Core Design Contradiction:
Ease of operationVSLoss of information

Solution Approach 1:

The patent applies nesting by visually embedding child method call representations within parent method call representations in the plot view. When a method is recursively called, the child invocation appears nested inside the parent's visual representation, creating a hierarchical structure that reveals recursive relationships while maintaining the simplicity of the overall plot display.

Inventive Principle:
Principle #7Nested doll (Nesting)

2Measurement precision

If trace functions record all method entry and exit points, then execution time data is complete and accurate, but the visual representation becomes complex and difficult to interpret

Engineering Contradiction:
Improveexecution time measurement accuracyVSAvoidvisual plot complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent segments the visual representation by dividing method call invocations into distinct visual elements that can be individually identified and understood. Each method call is represented as a separate entity with clear boundaries, and recursive relationships are shown through structured segmentation rather than a dense, undifferentiated display of all trace data.

Inventive Principle:
Principle #1Segmentation

3Quantity of substance

If the plot shows all method invocations including recursive calls, then complete performance data is visible, but the root cause of performance issues remains hidden

Engineering Contradiction:
Improvenumber of method calls displayedVSAvoiddifficulty of identifying performance bottlenecks
Core Design Contradiction:
Quantity of substanceVSDifficulty of detecting and measuring

Solution Approach 1:

The patent applies asymmetry by giving different visual treatments to parent and child method calls based on their role in the recursive structure. Parent invocations are displayed with visual characteristics that distinguish them from child invocations, allowing observers to quickly identify the root cause of performance issues rather than treating all method calls uniformly.

Inventive Principle:
Principle #4Asymmetry

Data Source

PatentUS9003371B2Recursive method call representation in a plot view of method execution performance
Publication Date: 2015.04.07 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US9003371B2 patent drawing
  • US9003371B2 patent drawing

AI summary

Embodiments of the present invention provide a method, system and computer program product for graphically representing recursive method calls in a plot view. In an embodiment of the invention, a method for graphically representing recursive method calls in a plot view includes tracing entry and exit points for method calls in an executing computer program subject to performance testing in a performance test application executing in memory of a computer. The method further includes plotting a duration of execution for each of the method calls in a visual plot according to the traced entry and exit points. Finally, the method includes visually displaying a recursive relationship between selected ones of the method calls in the visual plot in response to determining a recursive relationship from the traced entry and exit points.