Code Path Data Temporal Presentation and Navigation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Identifying specific code paths responsible for resource utilization spikes in complex applications with a large number of threads is challenging, as current methods lack efficiency in isolating primary contributors in production environments.
Innovation Solution
The system collects, filters, and analyzes stack tracing and code profiling data in conjunction with resource utilization data to identify contributing code paths. This involves constructing a search tree structure for efficient data representation, aligning and mapping data to detect correlations, and applying multi-level filtering to isolate likely contributors.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If sampling is performed to capture timing data from various code paths, then resource utilization monitoring is enabled, but identifying specific code paths responsible for resource spikes becomes challenging in complex applications with large numbers of threads
Solution Approach 1:
The patent segments the complex code path data by organizing it into hierarchical groups and subgroups based on code path characteristics. This segmentation allows the system to divide the overwhelming complexity of thousands of code paths into manageable segments that can be analyzed individually, directly addressing the challenge of identifying specific problematic code paths in complex applications.
Solution Approach 2:
The patent introduces a temporal dimension by capturing timing data at multiple granularities (overall code path timing, individual function call timing, and correlated resource utilization timing). This dimensional approach transforms the problem from static code path analysis to dynamic temporal pattern matching, enabling precise identification of code paths responsible for resource spikes even in complex applications.
2Measurement precision
If CPU profiling is run during spike events to identify root cause code paths, then potential causes can be detected, but the method cannot pinpoint specific code paths without comparison to a consistent baseline window
Solution Approach 1:
The patent performs preliminary action by continuously collecting and storing timing data for all code paths and resource utilization metrics during normal operation, before spike events occur. This pre-collected data serves as a dynamic reference that can be compared against spike event data, eliminating the need for manual baseline window selection and enabling automatic root cause identification.
Solution Approach 2:
The patent implements feedback by continuously comparing code path timing data with resource utilization data, automatically identifying correlations and feeding this information back to pinpoint problematic code paths. This feedback mechanism replaces the manual baseline comparison process with automated correlation analysis that adapts to changing application behavior.
3Quantity of substance
If timing data is collected from thousands of threads and hundreds of thousands of code paths, then comprehensive monitoring coverage is achieved, but the complexity of analyzing and isolating primary contributors increases significantly
Solution Approach 1:
The patent applies segmentation by organizing the vast quantity of timing data into hierarchical groups and subgroups based on code path characteristics. This structure divides hundreds of thousands of code paths into manageable segments that can be analyzed efficiently, reducing the complexity of isolating primary contributors while maintaining comprehensive coverage of all threads and code paths.
Solution Approach 2:
The patent extracts only the relevant timing data and characteristics needed for analysis, separating essential information from the vast amount of raw data collected from thousands of threads. This extraction process focuses analysis on key metrics such as code path timing, function call timing, and resource utilization correlations, significantly reducing analysis complexity while preserving data coverage.
Data Source
AI summary
Apparatus, method, and graphical user interface (GUI) for presentation and navigation of code path data. Code path data samples, including temporal data, related to a plurality of code paths of program code are used to render an interactive GUI including a set of graphical elements representing a corresponding set of code paths. Each graphical element indicates resource utilization changes associated with a respective code path over a time period. The set of graphical elements are visually arranged in a first dimension and the period of time is indicated in a second dimension. Different techniques are used to represent resource utilization over time including extending the graphical elements in a third dimension or changing a width of the graphical elements within a plane defined by the first dimension and the second dimension.


