Logical Grouping of Profile Data for Program Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional program profiling tools face challenges in managing copious and granular data, making it difficult to identify performance issues due to obscuration of asynchronous operations and lack of meaningful data segmentation or aggregation, which complicates understanding and optimization of program behavior.

Innovation Solution

A method for logical grouping of profile data using an organizational scheme that defines meaningful groups and relationships, allowing for high-level analysis and visualization, enabling precise CPU utilization and execution time tracking, and facilitating querying and visualization of data.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If profile data is collected in granular detail during program execution, then measurement precision is improved, but data complexity increases making it difficult to analyze

Engineering Contradiction:
Improveprofile data precisionVSAvoiddata structure complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent segments copious profile data into organized groups using a hierarchical data structure with summary nodes and detailed nodes. Summary nodes aggregate performance metrics (execution time, CPU utilization) for groups of functions, while detailed nodes contain specific function-level data. This segmentation transforms granular but overwhelming data into a structured format that maintains measurement precision while reducing analytical complexity.

Inventive Principle:
Principle #1Segmentation

2Loss of information

If all profile data is presented in detail, then information completeness is improved, but ease of operation deteriorates due to difficulty in identifying performance issues

Engineering Contradiction:
Improveprofile data completenessVSAvoidprogram analysis ease
Core Design Contradiction:
Loss of informationVSEase of operation

Solution Approach 1:

The patent introduces a hierarchical dimension to profile data presentation, organizing functions into logical groups (e.g., by module, subsystem, or functional category). This hierarchical organization adds a new dimension to data access, allowing users to navigate from high-level group summaries down to individual function details. The hierarchical structure enables efficient identification of performance bottlenecks at any level without overwhelming users with complete granular data upfront.

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

3Measurement precision

If instrumentation code is added to measure program behavior, then measurement capability is improved, but device complexity increases

Engineering Contradiction:
Improveprogram behavior measurementVSAvoidinstrumentation complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary profiling system that sits between the program execution and the analysis process. This intermediary automatically collects execution data (function calls, execution time, CPU utilization) and organizes it into hierarchical groups without requiring direct modification of the program's core logic. The intermediary handles the complexity of data collection and organization, providing clean structured output that maintains measurement precision while isolating instrumentation complexity from the analyzed program.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentEP2831740B1Logical grouping of profile data
Publication Date: 2018.07.25 MICROSOFT TECHNOLOGY LICENSING LLC
  • EP2831740B1 patent drawingFigure 1
  • EP2831740B1 patent drawingFigure 2
  • EP2831740B1 patent drawingFigure 3

AI summary

Profile data can be ascribed to groups as a function of an organizational scheme that defines groups and relationships between groups. The groups can be abstractions over profile data that are meaningful for computer program analysis. Subsequently, grouped data can be disseminated, queried, and visualized in numerous ways to further aid program analysis.