Trace Markers for Multi-Threaded Software Execution Path Visualization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional code tracing methods fail to provide a clear visualization of the execution path of functions in multi-threaded software applications, making it difficult for software engineers to identify the cause of performance issues, as they lack information about the link between functions and when they were scheduled.
Innovation Solution
A method and system that inserts trace markers into the code to visually map the execution path of functions, allowing for dynamic tracing and visualization of the execution path, including the links between functions and their scheduling times, using automated systems like AI for analysis and bytecode injections.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of information
If conventional code tracing methods are used to capture execution times, then performance data can be collected, but the execution path and links between functions cannot be clearly visualized
Solution Approach 1:
The patent segments the code by inserting trace markers at specific points (function entry/exit, thread creation/join) to divide the execution flow into identifiable segments. This segmentation allows each function and thread to be tracked independently while maintaining the overall execution path visualization.
Solution Approach 2:
The patent introduces trace markers as intermediary elements that act as mediators between the code execution and the visualization system. These markers capture execution information without interfering with the actual code logic, enabling clear visualization of the execution path while maintaining system functionality.
2Loss of information
If distributed tracing is used to track requests throughout transactions, then top-down visibility is achieved, but the real path of function execution and scheduling links are not shown
Solution Approach 1:
The patent implements dynamic tracing that adapts to multi-threaded execution by automatically tracking thread creation, suspension, and joining. The trace markers dynamically record the actual execution path as it unfolds, capturing scheduling links between functions across different threads rather than following a static top-down transaction view.
Solution Approach 2:
The patent changes the tracing parameters from transaction-based to function-execution-based. By recording thread IDs, execution timestamps, and function call relationships, the system transforms the trace data to show actual execution paths and scheduling links, making performance analysis more intuitive and operationally easier.
3Reliability
If multiple asynchronous threads are traced, then comprehensive coverage is achieved, but the visualization complexity increases significantly
Solution Approach 1:
The patent adds temporal and threading dimensions to the visualization by incorporating thread IDs and execution timestamps into the trace markers. This multi-dimensional approach allows multiple asynchronous threads to be visualized simultaneously with clear differentiation, maintaining comprehensive coverage while reducing visualization complexity through structured presentation.
Data Source
AI summary
A method and system for evaluating performance of software. The method and system includes inserting into the code trace markers where a given function has begun and ended. Inserting additional trace markers where a function is being called and scheduled to be executed later in the same or different threads. Saving the code including the trace markers in the computer database. Running and executing the code with the trace markers to draw paths on the trace recording creating a mapping of the full execution path of each function including its parent functions and all functions that are linked to the parent functions. Reviewing the mapping to determine which functions can be improved.


