IP Library › Granted Patent US 10,509,648
Granted Patent B2
US 10,509,648 · App. 14/249,514 · Granted Dec 17, 2019

Classification and display of code execution profile data

Inventor: Steve Rabin (Redmond, WA)
Assignee: Nintendo Co., Ltd.
G06F8/77
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,509,648
App. No.
14/249,514
Granted
Dec 17, 2019
Kind
B2
Abstract

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.

Claims (41)

1. A system for classifying software systems in a code execution profile, comprising:

a processing system having at least one processor, the processing system configured to:

assign functions based on a first belief score, executing in a running program, to a software system classification, that describes a grouping to which the executing function is associated, determined by partial string matching at least a portion of a function name and/or function parameter to one or more stored function names, the first belief score being higher depending upon match position within the function name and/or function parameter;

calculate a correlation between unclassified functions to one or more functions classified by the partial string matching to determine one or more second belief scores for at least each unclassified function;

propagate the one or more second belief scores, based on a function execution time during a specified time period, to determine one or more third belief scores for at least each unclassified function;

assign each unclassified function to the software system classification based on a highest belief score from the one or more third belief scores; and

generate a display showing function execution over a period of time with the respective functions being displayed to correspond to their assigned software system classification without a need for mark-up of original source code of the running program.

2. The system of claim 1 , wherein the display is a graph showing function execution over time along a first axis and call stack depth along a second axis.

3. The system of claim 2 , wherein the graph is color coded to correspond to different portions of the graph representing respective software system classifications.

4. The system of claim 1 , wherein the display is a graph showing function execution over time along a radial axis with call stack depth extending outward along the radial axis.

5. A system for profiling software, comprising:

a processing system having at least one processor, the processing system configured to:

assign a first set of functions, executing in a running program, to a software system classification, that describes a grouping to which the executing function is associated, based on a first belief score determined by partial string matching at least a portion of a function name and/or function parameter to one or more stored function names;

calculate a correlation between a second set of functions, executing in the running program, to one or more functions in the first set of functions to determine one or more second belief scores that are propagated among at least the second set of functions;

assign each function in the second set of functions to the software system classification based on a highest belief score from the one or more second belief scores; and

generate a display showing function execution over time with the respective functions being displayed to correspond to their assigned software system classification without a need for mark-up of original source code of the running program.

6. The system of claim 5 , wherein the processing system calculates the correlation between the second set of functions to the one or more functions in the first set of functions based at least in part on the relationship between the functions.

7. The system of claim 5 , wherein the processing system calculates the second set of functions to the one or more functions in the first set of functions based on relationships between the functions, and propagates the one or more second belief scores based on the relationships between the functions, the one or more second belief scores decreasing the farther the relationship is between the functions.

8. The system of claim 5 , wherein the display depicts function execution over time along a first axis and call stack depth along a second axis.

9. The system of claim 5 , wherein the display depicts function execution over time along a radial axis with call stack depth extending outward along the radial axis.

10. The system of claim 5 , wherein the one or more second belief scores are indicative of a probability that the second set of functions belongs to one or more software system classifications, the one or more second belief scores calculated, in part, based on a relationship of the second set of functions to the one or more functions in the first set of functions, the first set of functions executing in association with the second set of functions along a call stack depth.

11. The system of claim 5 , wherein the software system classification includes at least one selected from a group comprising an idle state, a physics system, a graphics system, a particle system, an animation system, an artificial intelligence (AI) system, an audio system, an online system, a math system, a job system, a memory system, and/or an unknown system.

12. The system of claim 5 , wherein the display further shows function execution over the period of time along different cores of a multi-core processor.

13. A method, implemented using at least one processor, for profiling software, the method comprising:

assigning a first set of functions, executing in a running program, to a software system classification, that describes a grouping to which the executing function is associated, based on a first belief score determined by partial string matching at least a portion of a function name and/or function parameter to one or more stored function names;

calculating a correlation between a second set of functions, executing in the running program, to one or more functions in the first set of functions to determine one or more second belief scores that are propagated among at least the second set of functions;

assigning each function in the second set of functions to the software system classification based on a highest belief score from the one or more second belief scores; and

generating a display showing function execution over a period of time with the respective functions being displayed to correspond to their assigned software system classification without a need for mark-up of original source code of the running program.

14. The method of claim 13 , wherein the one or more second belief scores are determined based on a proximity of relationship between the functions.

15. The method of claim 13 , wherein the one or more second belief scores are determined based on a proximity of relationship between the functions, the one or more second belief scores are propagated between functions based on the proximity of relationships, the propagated one or more second belief scores decreasing the farther the relationship is between the functions.

16. The method of claim 13 , wherein the display is a graph showing function execution over time along a first axis and call stack depth along a second axis.

17. The method of claim 13 , wherein the display is a graph showing function execution over time along a radial axis with call stack depth extending outward along the radial axis.

18. A non-transitory computer-readable storage medium comprising instructions which, when executed by one or more processors of an information processing apparatus, cause the information processing apparatus to:

assign a first set of functions, executing in a running program, to a software system classification, that describes a grouping to which the executing function is associated, based on a first belief score determined by partial string matching at least a portion of a function name and/or function parameter to one or more stored function names;

calculate a correlation between a second set of functions, executing in the running program, to one or more functions in the first set of functions to determine one or more second belief scores that are propagated among at least the second set of functions;

assign each function in the second set of functions to the software system classification based on a highest belief score from the one or more second belief scores; and

generate a display showing function execution over a period of time with the respective functions being displayed to correspond to their assigned software system classification without a need for mark-up of original source code of the running program.

19. The non-transitory computer-readable storage medium of claim 18 , wherein the one or more second belief scores are determined based on a proximity of relationship between the functions.

20. The non-transitory computer-readable storage medium of claim 18 , wherein the one or more second belief scores are determined based on a proximity of relationship between the functions, the one or more second belief scores are propagated between functions based on the proximity of relationships, the propagated one or more second belief scores decreasing the farther the relationship is between the functions.

21. The non-transitory computer-readable storage medium of claim 18 , wherein the display is a graph showing function execution over time along a first axis and call stack depth along a second axis.

22. The non-transitory computer-readable storage medium of claim 18 , wherein the display is a graph showing function execution over time along a radial axis with call stack depth extending outward along the radial axis.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 11, 2014
From: NINTENDO OF AMERICA INC.
To: NINTENDO CO., LTD.
Reel/Frame 032653/0340 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 10, 2014
From: RABIN, STEVE
To: NINTENDO OF AMERICA INC.
Reel/Frame 032645/0046 →
Continuity (1)
Related Publication 20150293761A1 · Oct 15, 2015
Cited By (8)
US 12,272,207 US 12,412,447 US 12,436,968 US 12,494,107 US 12,536,864 US 12,608,640 US 12,689,868 US 12,749,003