SYSTEM AND METHOD TO IDENTIFY CODE EXECUTION RHYTHMS
First Claim
1. A method implemented using an information processing apparatus for identifying code execution rhythms by monitoring function execution behavior in a running program, comprising:
- monitoring, using a processor, functions executing in a running program over a period of time;
analyzing the functions to find clusters of function execution;
grouping the clusters with respect to time thresholds;
selecting from the analyzed functions to determine a set of functions based on a period and a score associated with each function;
generating a displayable visualization having a time axis displayed along a first axis, an ordered listing of the selected functions in the set displayed along a second axis, and a graphical depiction of execution start times for each function in the ordered listing displayed adjacent to the respective function along the second axis; and
determining execution time per frame for each function in the ordered listing thereby allowing frame-by-frame analysis of function execution.
4 Assignments
0 Petitions
Accused Products
Abstract
The present technology is directed to accurately identifying code execution rhythms from a running program, even when they are occasionally irregular. The present technology is capable of detecting and inferring the rhythms without any prior knowledge or expectations of rates or number of rhythms present in a running program. These code execution rhythms can then be used to further understand and analyze the behavior of a running program, for example, by exposing various rhythms that might have been unknown/unrealized, irregularity of rhythms, or by analyzing the behavior of functions on a per frame basis under different rhythms.
15 Citations
18 Claims
-
1. A method implemented using an information processing apparatus for identifying code execution rhythms by monitoring function execution behavior in a running program, comprising:
-
monitoring, using a processor, functions executing in a running program over a period of time; analyzing the functions to find clusters of function execution; grouping the clusters with respect to time thresholds; selecting from the analyzed functions to determine a set of functions based on a period and a score associated with each function; generating a displayable visualization having a time axis displayed along a first axis, an ordered listing of the selected functions in the set displayed along a second axis, and a graphical depiction of execution start times for each function in the ordered listing displayed adjacent to the respective function along the second axis; and determining execution time per frame for each function in the ordered listing thereby allowing frame-by-frame analysis of function execution. - View Dependent Claims (2, 3)
-
-
4. A method implemented in an information processing apparatus having one or more processors and for identifying code execution rhythms, comprising:
-
monitoring, using the one or more processors, a running program to identify rhythmic execution patterns; evaluating the periodicity of the identified rhythmic execution patterns; and generating a visualization showing occurrence of said identified patterns exhibiting periodicity characteristics with respect to time. - View Dependent Claims (5, 6, 7, 8, 9)
-
-
10. A non-transitory computer-readable storage medium storing instructions which, when executed by one or more processors of an information processing apparatus, cause the information processing apparatus to perform features comprising:
-
monitoring a running program to identify rhythmic execution patterns; evaluating the periodicity of the identified rhythmic execution patterns; and generating a visualization showing occurrence of said identified patterns exhibiting periodicity characteristics with respect to time. - View Dependent Claims (11, 12, 13, 14, 15)
-
-
16. A system for identifying code execution rhythms, comprising:
-
a memory; and at least one processor operatively coupled to the memory and configured to perform features comprising; monitoring a running program to identify rhythmic execution patterns, selecting identified rhythmic execution patterns based on periodicity, and providing output highlighting periodicity and/or irregularities in the periodicity. - View Dependent Claims (17, 18)
-
Specification