Trace Markers for Multi-Threaded Software Execution Path Visualization

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveexecution path informationVSAvoidtracing system complexity
Core Design Contradiction:
Loss of informationVSDevice complexity

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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

Engineering Contradiction:
Improvefunction scheduling link informationVSAvoidperformance analysis ease
Core Design Contradiction:
Loss of informationVSEase of operation

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.

Inventive Principle:
Principle #15Dynamics

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.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If multiple asynchronous threads are traced, then comprehensive coverage is achieved, but the visualization complexity increases significantly

Engineering Contradiction:
Improvetracing coverageVSAvoidvisualization complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

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.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Data Source

PatentUS20240070051A1System and method of analyzing software application performance
Publication Date: 2024.02.29 PRODUCTION SCIENCES INC
  • US20240070051A1 patent drawing
  • US20240070051A1 patent drawing
  • US20240070051A1 patent drawing

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.