Stack Trace Visualization Plug-in Rendering Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing systems for rendering stack trace visualization displays, such as flame graphs, are inefficient and take tens of seconds due to delays associated with predefined JSON tree structures and features like search and zoom.

Innovation Solution

A system and method that includes a stack trace visualization display plug-in, which allows users to customize key names, selectively renders stack frames based on resource consumption and pixel width thresholds, and optimizes rendering by independent handling of stack frame rectangles and text.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If existing plugins use predefined JSON tree structures with defined keys, then the format is standardized and easy to parse, but rendering time increases to tens of seconds due to delays in looking up predefined formats and keys

Engineering Contradiction:
Improveease of parsing JSONVSAvoidrendering time
Core Design Contradiction:
Ease of manufactureVSLoss of time

Solution Approach 1:

The system performs preliminary action by pre-establishing the mapping between JSON keys and visual display elements before rendering occurs. The plug-in maintains an internal representation of the predefined format structure, allowing direct translation of JSON data to visual elements without runtime lookup delays. This pre-prepared structure enables instantaneous rendering while preserving the benefits of standardized JSON formats.

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If search and zoom features are added to existing plugins, then functionality is enhanced for user interaction, but rendering time increases due to additional processing delays

Engineering Contradiction:
Improvesearch and zoom functionalityVSAvoidrendering time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The system applies segmentation by dividing the rendering process into independent segments: the base visualization rendering and the search/zoom interaction handling. The base rendering uses efficient direct translation of JSON to visual elements, while search and zoom operations are handled as separate, optimized processes that query pre-processed data structures. This segmentation allows search and zoom features to be added without compromising the base rendering performance.

Inventive Principle:
Principle #1Segmentation

3Loss of information

If the plug-in renders all stack frames, then complete visualization is provided, but rendering time increases significantly for large profiles

Engineering Contradiction:
Improvecompleteness of visualizationVSAvoidrendering time
Core Design Contradiction:
Loss of informationVSLoss of time

Solution Approach 1:

The system applies partial action by selectively rendering only the necessary stack frames based on predefined criteria such as minimum duration thresholds or importance metrics. Instead of rendering all stack frames regardless of size, the plug-in filters and prioritizes which frames to display, providing complete visualization for critical paths while omitting insignificant details. This approach maintains information completeness for essential elements while dramatically reducing rendering time for large profiles.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS12222836B2Rendering a stack trace visualization display
Publication Date: 2025.02.11 SALESFORCE INC
  • US12222836B2 patent drawing
  • US12222836B2 patent drawing
  • US12222836B2 patent drawing

AI summary

A method and system for rendering a stack trace visualization display has been developed. A first stack trace associated with execution of an application during a time period is received from a central processing unit profiler. A first stack trace visualization display is rendered including a plurality of stack frames stacked in accordance with an order of ancestry based on the first stack trace. Rendering at least one stack frame involves rendering at a first location of the first stack trace visualization display, a stack frame rectangle for the at least one stack frame in accordance with the order of ancestry and rendering at a second location of the first stack trace visualization display, stack frame specific text for the at least one stack frame. The second location overlays the first location. Rendering of the stack frame rectangle is independent of the rendering of the stack frame specific text.