Dynamic calculation of sample profile reports
AssigneeMicrosoft Corporation
InventorsAlexander Dadiomov, Mayank Agarwal, Xinhua Ji
Life of this patent
Estimating the term…
Abstract
The construction or use of a hierarchical time tree that represents an execution time of a program. To construct the hierarchical time tree, the time frame corresponding to the root node is the execution time during which the plurality of call stack samples were gathered from the program. Beginning at the root node, and proceeding recursively, each node is then populated in a manner that all of the call stacks for a given time period need not be accessed in order to provide a report regarding the given time period.
Claims20
A computer program product comprising a computer-storage device having stored thereon computer-executable instructions that, when executed by one or more processors of the computing system, cause a computing system to perform the following:
- an act of constructing a hierarchical time tree representing an execution time of a program that was executed to obtain a plurality of call stack samples, wherein the hierarchical time tree includes a plurality of nodes, each node corresponding to an execution time interval, each node including an indication of the number of call stack samples obtained during that execution time interval;
- and
- an act of populating each node of the hierarchical time tree with information from the call stack samples corresponding to that node's time interval.
A computer program product comprising a computer-storage device having stored thereon computer-executable instructions that, when executed by one or more processors of the computing system, cause a computing system to perform the following:
- an act of accessing a hierarchical time tree representing an execution time of a program that was executed to obtain a plurality of call stack samples, wherein the hierarchical time tree includes a plurality of populated nodes, each populated node corresponding to an execution time frame, each populated node including an indication of the number of call stack samples obtained during that execution time frame, and in response to a detection of a specified time interval within the execution time of the program;
- and
- an act of using the hierarchical time tree to construct a report regarding the plurality of call stack samples without having to separately access all of the plurality of call stack samples.
At a computer system including at least one processor and a memory, a computer-implemented method for constructing and populating a hierarchical time tree representing an execution time of a program that was executed to obtain a plurality of call stack samples, wherein the hierarchical time tree includes a plurality of nodes, each node corresponding to an execution time interval:
- an act of setting the time frame corresponding to the root node in the hierarchical time tree to be the entire execution time during which the plurality of call stack samples were gathered;
- and
- an act of the processor performing the following beginning at a root node of the hierarchical time tree and continuing through each node of the hierarchical time tree:
- if a time interval of the current node contains less than a certain number of call stack samples, then the current node is a leaf node, and the leaf node is populated with call stack samples sampled in the time interval;
- and
- if a time interval of the current node contains at least the certain number of samples, then the current node is a non-leaf node, and the non-leaf node is populated with compiled call stack frequency data regarding at least some of the of call stacks, the compiled call stack frequency data being obtained during the time interval corresponding to the current node, the time interval being subdivided into a number of sub-periods, and the same number of child nodes are created, each corresponding to one of the sub-periods.
Dependencies are inferred from the claim text.