Method and apparatus for identifying similar regions of a program's execution
First Claim
Patent Images
1. A method of analyzing a computer program, the computer program including instructions of code, the method comprising:
- a processor and a memory performing;
selecting a number of continuous instructions that are run in program execution order to define an interval of execution;
running the code of the computer program, wherein said running the code comprises running a plurality of continuous instructions of the code in program execution order, wherein within the plurality of continuous instructions, the code is run over a plurality of the defined intervals of execution, wherein each of the plurality of defined intervals of execution is run over the selected number of continuous instructions;
during said step of running the code, tracking a statistic for a program component;
identifying a behavior of the computer program over each of the plurality of defined intervals of execution over which the code is run based on the tracked statistic;
comparing at least one identified behavior for at least one defined interval of execution over which the code is run to another defined interval of execution over which the code is run to determine similarity between the defined intervals of execution.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and architecture for analyzing a computer program by finding similar sections of execution of the computer program. Code of the computer program is run over a plurality of intervals of execution, and during the execution of the program, a statistic is tracked for a component. Using the tracked statistic, behavior of the computer program is identified over each of the plurality of intervals of execution, and at least one identified behavior of at least one interval of execution is compared to the behavior of another interval of execution to find similar sections of behavior.
73 Citations
53 Claims
-
1. A method of analyzing a computer program, the computer program including instructions of code, the method comprising:
-
a processor and a memory performing; selecting a number of continuous instructions that are run in program execution order to define an interval of execution; running the code of the computer program, wherein said running the code comprises running a plurality of continuous instructions of the code in program execution order, wherein within the plurality of continuous instructions, the code is run over a plurality of the defined intervals of execution, wherein each of the plurality of defined intervals of execution is run over the selected number of continuous instructions; during said step of running the code, tracking a statistic for a program component; identifying a behavior of the computer program over each of the plurality of defined intervals of execution over which the code is run based on the tracked statistic; comparing at least one identified behavior for at least one defined interval of execution over which the code is run to another defined interval of execution over which the code is run to determine similarity between the defined intervals of execution. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36)
-
-
37. A method of analyzing a computer program, the computer program including instructions of code, the method comprising:
-
a processor and a memory performing; selecting a number of continuous instructions that are run in program execution order to define an interval of execution; running the code of the computer program, wherein said running the code comprises running a plurality of continuous instructions of the code in program execution order, wherein within the plurality of continuous instructions, the code is run over a plurality of the defined intervals of execution, wherein each of the plurality of defined intervals of execution is run over the selected number of continuous instructions; during said step of running the code, tracking a statistic for a program component; identifying a behavior of the computer program over each of the plurality of defined intervals of execution over which the code is run based on the tracked statistic; classifying each of the at least one intervals of execution over which the code is run according to the identified behavior into clusters of similar behavior. - View Dependent Claims (38, 39, 40, 41, 42, 43, 44)
-
-
45. A method of analyzing a computer program, the computer program including instructions of code, the method comprising:
-
a processor and a memory performing; selecting a number of continuous instructions that are run in program execution order to define an interval of execution; running the code, wherein said running the code comprises running a plurality of continuous instructions of the code in program execution order, wherein within the plurality of continuous instructions, the code is run over a plurality of the defined intervals of execution, wherein each of the plurality of defined intervals of execution is run over the selected number of continuous instructions; during said step of running the code, tracking a statistic for a program component; identifying a behavior of a hardware-independent metric over each of the plurality of defined intervals of execution over which the code is run based on the tracked statistic; identifying behavior of the hardware-independent metric over full execution of the code to identify a target behavior; comparing the identified behavior of each of the plurality of defined intervals of execution over which the code is run to the identified target behavior over full execution of the code to determine a representative interval; simulating execution of the computer program over the determined representative interval. - View Dependent Claims (46, 47, 48, 49, 50, 51, 52)
-
-
53. A method of analyzing a computer program, the computer program including instructions of code, the method comprising:
-
a processor and a memory performing; selecting an amount of execution time over which continuous instructions of the code are run in program execution order to define an interval of execution; running the code of the computer program, wherein said running the code comprises running a plurality of continuous instructions of the code in program execution order, wherein within the plurality of continuous instructions, the code is run over a plurality of the defined intervals of execution, wherein each of the plurality of defined intervals of execution is run over the selected amount of execution time; during said step of running code, tracking a statistic for a program component; identifying a behavior of the computer program over each of the defined plurality of intervals of execution over which the code is run based on the tracked statistic; comparing at least one identified behavior for at least one defined interval of execution over which the code is run to another defined interval of execution over which the code is run to determine similarity between the intervals of execution.
-
Specification