Code Execution Visualization via Software Fingerprinting

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing software performance analysis tools focus on cost rather than usage, failing to provide insights into how functions are called during program execution, making it difficult to identify areas for optimization in complex software systems.

Innovation Solution

A system and method for analyzing software performance by graphically presenting code execution data, allowing for function usage-based tracing, which includes sampling based on function calls, memory allocation, and system events, enabling the visualization of callstack depth over time or events to identify repetitive patterns and deep function calls.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of information

If traditional performance tools focus on cost analysis, then information about where time is spent is provided, but information about how functions are called during execution is lost

Engineering Contradiction:
Improvefunction call usage informationVSAvoidperformance analysis system
Core Design Contradiction:
Loss of informationVSDevice complexity

Solution Approach 1:

The system segments the performance analysis into multiple sampling types (time-based, function-call-based, memory-allocation-based, event-based) and represents each segment as a separate visual trace. This allows the complex information to be divided into manageable sections that can be analyzed independently while maintaining the complete picture of function usage patterns.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The invention adds a new dimension to performance analysis by visualizing callstack depth alongside traditional cost metrics. The graphical representation shows both the depth of function calls and the associated cost, creating a two-dimensional view that reveals usage patterns hidden in traditional one-dimensional cost reports.

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

2Productivity

If code execution data is collected and analyzed, then performance optimization opportunities are identified, but the complexity of analyzing large-scale trace tables increases

Engineering Contradiction:
Improveperformance analysis efficiencyVSAvoidtrace table analysis
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system uses color coding to represent different sampling types and callstack depth levels in the graphical traces. This visual encoding allows analysts to quickly identify patterns and anomalies without processing the raw numerical data, dramatically improving analysis efficiency while maintaining complete information.

Inventive Principle:
Principle #32Color changes

Solution Approach 2:

Instead of requiring analysts to directly process large trace tables, the system creates a visual copy or representation of the execution data. The graphical traces serve as an intermediary that preserves all information while presenting it in a human-readable format that enables rapid pattern recognition.

Inventive Principle:
Principle #26Copying

3Measurement precision

If comprehensive sampling is performed to capture all execution patterns, then complete performance data is obtained, but the time and resources required for analysis increase

Engineering Contradiction:
Improveexecution pattern accuracyVSAvoidanalysis time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The system performs comprehensive sampling to capture all execution patterns, but then applies selective visualization that highlights only the most relevant information. By using visual encoding to emphasize callstack depth and usage patterns, the system provides complete data while reducing the effective analysis time needed to identify optimization opportunities.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS7730460B1Code execution visualization using software fingerprinting
Publication Date: 2010.06.01 APPLE INC
  • US7730460B1 patent drawing
  • US7730460B1 patent drawing
  • US7730460B1 patent drawing

AI summary

A system, method, and computer program for analyzing code execution and software performance characteristics are disclosed. Samples of executing code may be taken based on any of a number of various triggers. For example, samples may be triggered based on function calls, such as malloc calls. Alternatively, samples may be triggered based on occurrence of a specified event. Code execution is graphically displayed such that certain patterns may be easily identified. Multiple redundant function calls and areas of code having excessively deep function calls can be readily spotted. Such areas represent opportunities for performance optimization.