METHOD AND APPARATUS FOR EFFICIENT STATISTICAL PROFILING OF VIDEO GAME AND SIMULATION SOFTWARE
First Claim
Patent Images
1. A system for monitoring and testing executing software of the type that generates moving image frames on a display device at a predetermined refresh rate comprising;
- a processor that executes code to provide a display on said display device;
a statistical sampling profiler, which performs statistical sampling of the code being executed to provide profiling data, wherein at least the first sampling point in each frame has a random temporal offset relative to the refresh rate; and
a profile analyzer unit that receives the profiling data from the statistical sampling profiler and provides information about the dynamic operation of the executing code.
2 Assignments
0 Petitions
Accused Products
Abstract
Efficient statistical profiling in embedded computing devices, such as video games, uses a hybrid random distribution of sampling points for more accurate reconstruction of executing code. Transmission of only function start addresses and corresponding representation of the call graph data reduces the memory overhead and increases communication speed.
33 Citations
25 Claims
-
1. A system for monitoring and testing executing software of the type that generates moving image frames on a display device at a predetermined refresh rate comprising;
-
a processor that executes code to provide a display on said display device; a statistical sampling profiler, which performs statistical sampling of the code being executed to provide profiling data, wherein at least the first sampling point in each frame has a random temporal offset relative to the refresh rate; and a profile analyzer unit that receives the profiling data from the statistical sampling profiler and provides information about the dynamic operation of the executing code. - View Dependent Claims (2, 3, 4)
-
-
5. A system for monitoring and testing software being executed in an embedded computing device, comprising;
-
a first computer processor unit, which executes commands based on a computer code comprising a set of functions; a second computer unit connected to the first computer processor unit and storing said computer code, with each of said functions having an address in the memory of said second computer unit; a display device which receives output data from the first computer processor unit and displays information related to said data at a predetermined frame rate; a statistical sampling profiler unit, which is connected to the first computer processor unit and performs sampling of the computer code being executed, wherein the sampling occurs during each frame period, and wherein a list of the starting addresses of all the functions of the computer code being executed is transmitted from the second computer unit side to the first computer processor unit before the sampling begins, and wherein during sampling, each of the entries of the sample call stack resulting from the sampling is transformed to represent the starting address of the function that was sampled; and a profile analyzer unit that receives the data from the statistical sampling profiler unit and provides information about the dynamic operation of the computer software. - View Dependent Claims (6, 7, 8, 9, 10)
-
-
11. A system for monitoring and testing software being executed in an embedded computing device, comprising;
-
a first computer processor unit, which executes commands based on a computer code comprising a set of functions; a second computer unit connected to the first computer processor unit and storing said computer code, with each of said functions having an address in the memory of said second computer unit; a display device which receives output data from the first computer processor unit and displays information related to said data at a predetermined frame rate; a statistical sampling profiler unit, which is connected to the first computer processor unit and performs sampling of the computer code being executed, wherein the sampling occurs during each frame period, and wherein a list of the starting addresses of all the functions of the computer code being executed is transmitted from the second computer unit side to the first computer processor unit before the sampling begins, and wherein raw sampling data is collected and stored and at the conclusion of the sampling, it is transformed to comprise the starting addresses of the sampled functions of the executed program; and a profile analyzer unit that receives the data from the statistical sampling profiler unit and provides information about the dynamic operation of the computer software. - View Dependent Claims (12)
-
-
13. A method for monitoring and testing software, being executed by a computing device that provides display information to a display device at a predetermined periodic frame rate, said method comprising;
-
statistically sampling the computer code being executed, beginning at a sampling point having a random temporal offset relative to said frame rate to provide profiling data; and analyzing the profiling data from the sampling to provide information about the computer software. - View Dependent Claims (14, 15, 16)
-
-
17. A method for monitoring and testing software code comprising a set of functions, said software being executed in an embedded computing device connected to a computer unit which stores said computer software, with each of said functions having an address in the memory of said computer unit, wherein the embedded computing device provides display information to a display device at a predetermined periodic frame rate, comprising;
-
statistically sampling the computer code being executed, wherein the sampling occurs during each frame period, and wherein a list of the starting addresses of all the functions of the computer code being executed is transmitted from the computer unit side to the embedded computing device before the sampling begins and wherein during sampling, each of the entries of the sample call stack resulting from the sampling is transformed to represent the starting address of the function that was sampled; and analyzing the data from the sampling to provide information about the computer software. - View Dependent Claims (18, 19, 20, 21, 22)
-
-
23. A method for monitoring and testing software code comprising a set of functions, said software being executed in an embedded computing device connected to a computer unit which stores said computer software, with each of said functions having an address in the memory of said computer unit, wherein the embedded computing device provides display information to a display device at a predetermined periodic frame rate, comprising;
-
statistically sampling the computer code being executed, wherein the sampling occurs during each frame period, and wherein a list of the starting addresses of all the functions of the computer code being executed is transmitted from the computer unit side to the embedded computing device before the sampling begins and wherein raw sampling data is collected and stored and at the conclusion of the sampling, it is transformed to comprise the starting addresses of the sampled functions of the executed program; and analyzing the data from the sampling to provide information about the computer software. - View Dependent Claims (24)
-
-
25. A method of profiling a dynamically executing video game program comprising:
-
sampling said executing program at sampling times that vary but are related to a display refresh rate; and storing sampling results in a call tree structure and a separate associated call frequency array.
-
Specification