Temporal Cost-Incurrence Fingerprints for Software Profiling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing software profiler tools fail to provide precise temporal information on resource usage, making it difficult for developers to identify and optimize costly methods within large programs, as they only report aggregated costs without detailing when these costs are incurred.

Innovation Solution

The development of a method to create temporal cost-incurrence fingerprints, which automatically select and display the most expensive methods with unique cost-incurrence times, allowing developers to visualize and analyze when processor cycles, energy consumption, memory, file I/O, and network I/O occur, thereby aiding in program optimization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of information

If existing software profiler tools report aggregated resource usage costs, then developers can see total resource consumption, but they cannot identify when these costs are incurred during program execution

Engineering Contradiction:
Improvetemporal informationVSAvoidprofiler tool complexity
Core Design Contradiction:
Loss of informationVSDevice complexity

Solution Approach 1:

The patent segments the execution timeline into discrete time intervals and segments resource costs by method and time interval. This creates a structured breakdown where each cost entry is associated with a specific time interval, enabling temporal identification of costly operations without requiring complex analysis of the entire execution trace.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent adds a temporal dimension to traditional profiling data by introducing time intervals as a new dimension of analysis. Instead of only showing aggregated costs, the system displays costs annotated with time interval information, transforming the data structure to include when costs occurred rather than just how much was consumed.

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

2Loss of information

If profilers display detailed cost information for all methods, then developers have complete data, but the output becomes overwhelming and difficult to analyze

Engineering Contradiction:
Improvecost detail completenessVSAvoiddeveloper analysis ease
Core Design Contradiction:
Loss of informationVSEase of operation

Solution Approach 1:

The patent extracts and highlights only the most relevant information by identifying methods with the highest resource costs and those with unique temporal patterns. The system extracts top-cost methods and annotates them with their specific time interval fingerprints, separating the signal (important cost patterns) from the noise (less relevant data) to make analysis more manageable.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent applies different levels of detail to different methods based on their cost characteristics. High-cost methods receive detailed temporal annotation and fingerprinting, while lower-cost methods are summarized. This localized application of detail ensures that developers receive comprehensive information where it matters most without being overwhelmed by unnecessary data throughout the entire output.

Inventive Principle:
Principle #3Local quality

3Reliability

If source code is reviewed to identify runtime costs, then developers can understand program behavior, but source code is not always available and runtime behavior is difficult to predict

Engineering Contradiction:
Improvebehavior prediction accuracyVSAvoidcost identification effort
Core Design Contradiction:
ReliabilityVSEase of manufacture

Solution Approach 1:

The patent creates a virtual copy of the execution trace with annotated time interval information. Instead of relying on source code analysis, the system generates a profile data structure that copies the actual runtime behavior and timestamps it. This executable trace copy provides reliable information about real cost incurrence times without requiring source code availability or complex prediction algorithms.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS8554811B2Software routine fingerprints in performance data
Publication Date: 2013.10.08 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8554811B2 patent drawing
  • US8554811B2 patent drawing
  • US8554811B2 patent drawing

AI summary

Program profile data is used to prepare temporal cost-incurrence fingerprints, which show when a given method or method frame incurred specified cost(s) during a period of interest while a program was/is executing. Relationships between methods can be elicited by studying their temporal cost-incurrence fingerprints. Methods which are often good candidates for optimization can be automatically selected by identifying a small set of methods whose amount of cost lies within specified bounds relative to the most costly method, or in absolute terms, and whose respective fingerprints differ from one another.