Software Profiler Auto-Classification via Sunburst Icicle Graphs

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current software profiler systems face challenges in classifying and visualizing the dynamic behavior of software programs due to the complexity of millions of data points from thousands of functions, making it difficult to simplify results and identify software system affiliations without manual intervention or code markup.

Innovation Solution

The system employs partial string matching, correlation analysis, and call stack belief propagation to classify functions into software systems, using techniques like Sunburst Icicle Graphs to visually represent function membership data, time interval frame data, and call stack profile data, allowing for auto-classification and aggregate result display without user intervention.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If software profiler systems record detailed execution data from thousands of functions, then measurement precision is improved, but device complexity increases

Engineering Contradiction:
Improvesoftware execution measurement precisionVSAvoidprofiler system complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent segments the complex profiler system into distinct functional modules: data collection module that gathers execution information, classification module that categorizes functions into software systems, and visualization module that presents results through Sunburst Icicle Graphs. This segmentation allows each module to handle specific tasks independently, managing complexity while maintaining high measurement precision through detailed data collection.

Inventive Principle:
Principle #1Segmentation

2Loss of information

If the system classifies millions of data points from thousands of functions, then information completeness is improved, but difficulty of detecting and measuring increases

Engineering Contradiction:
Improvesoftware behavior information completenessVSAvoidfunction classification difficulty
Core Design Contradiction:
Loss of informationVSDifficulty of detecting and measuring

Solution Approach 1:

The patent introduces an intermediary classification mechanism that uses belief propagation through call stacks to categorize functions into software systems. Instead of directly analyzing millions of raw data points, the system uses intermediate representations (classification scores, belief values) to bridge the gap between raw execution data and meaningful software system identification, reducing the difficulty of detecting and measuring function affiliations.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Measurement precision

If manual intervention or code markup is required for classification, then classification accuracy is improved, but ease of operation deteriorates

Engineering Contradiction:
Improveclassification accuracyVSAvoiduser interaction requirement
Core Design Contradiction:
Measurement precisionVSEase of operation

Solution Approach 1:

The patent implements a self-service classification system that automatically categorizes functions into software systems without requiring manual intervention or code markup. The system uses self-propagating belief mechanisms where classified functions help classify neighboring functions in the call stack, enabling the profiler to autonomously achieve accurate classification results while maintaining ease of operation.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10509648B2Classification and display of code execution profile data
Publication Date: 2019.12.17 NINTENDO CO LTD
  • US10509648B2 patent drawing
  • US10509648B2 patent drawing
  • US10509648B2 patent drawing

AI summary

Methods for classifying functions as belonging to a particular software system is disclosed. Various embodiments are also described that use and display the result of the function classification in various ways, regardless of whether the information was generated by any particular of the described methods. One example graph combines function membership data, time interval frame data, and call stack profile data in the form of an Icicle Graph. The Icicle Graph is then distorted into a Sunburst Graph, resulting in an overall Software System Sunburst Icicle Graph.