Hierarchical performance instrumentation injection
AssigneeAmazon Technologies, Inc.
InventorsNicholas A. Allen, Raleigh H. Upshur
Life of this patent
Estimating the term…
Abstract
In certain embodiments, a system receives a computer program from a server. The computer program can initiate display of views. The system selects one or more views according to a hierarchy of parent-child relationships among the views. For each selected view, a controller associated with rendering of the view is identified. One or more timing thunks configured to collect timing events are installed into the controllers. One or more records are created from the timing events, and at least a subset of the records are reported to the server.
Claims20
A computer-implemented method, comprising:
- installing instructions into a computer program configured to render a view that includes a plurality of views that have a hierarchical relationship, the instructions configured to collect one or more timing events associated with a rendering of the view;
- receiving, from a computing device, a user input to a graphical user interface of the computer program that requests one or more actions associated with the view;
- determining individual views of the plurality of views that are visible on a display of the computing device, wherein the individual views include a first view and a second view;
- initiating the rendering of the view using a plurality of controllers, wherein a first controller renders the first view and a second renders the second view;
- generating timing information via the first controller and the second controller, wherein the timing information is related to a time between a user input to a graphical user interface that requests the one or more actions associated with the view and at least a time to interactivity with the view at which the view is operable to allow a user of the graphical user interface to interact with the view;
- and
- sending from the first controller and the second controller a configurable portion of the timing information associated with the rendering of the view to a server computing device.
A system comprising:
- one or more processing units configured to:
- install instructions into a computer program configured to render a view that includes a plurality of views that have a hierarchical relationship, the instructions configured to collect one or more timing events associated with a rendering of the view;
- receive, from a computing device, a user input to a graphical user interface that requests one or more actions associated with the view;
- determine individual views of the plurality of views that are visible on a display of the computing device, wherein the individual views include a first view and a second view;
- initiate the rendering of the view using a plurality of controllers, wherein a first controller renders the first view and a second renders the second view;
- create records from timing events generated by the plurality of controllers, wherein a first record of the records indicates a time to interactivity at which a user of the computer program is able to interact with the view;
- generate, based at least in part on the records, statistical data representative of the timing events associated with the view;
- and
- report the statistical data to a remote computing device.
One or more non-transitory computer-readable media comprising logic, the logic when executed by one or more processing units configured to perform operations comprising:
- installing instructions into a computer program configured to render a view that includes a plurality of views that have a hierarchical relationship, the instructions configured to collect one or more timing events associated with a rendering of the view;
- receiving, from a computing device, a user input to a graphical user interface that requests one or more actions associated with the view;
- determining individual views of the plurality of views that are visible on a display of the computing device, wherein the individual views include a first view and a second view;
- initiating the rendering of the view using a plurality of controllers, wherein a first controller renders the first view and a second renders the second view;
- creating records from timing events generated by the plurality of controllers, wherein a first record of the records indicates a time to interactivity at which a user of the computer program is able to interact with the at least the partial rendering of the view;
- generating, based at least in part on the records, statistical data representative of the timing events associated with the rendering of the view;
- and
- reporting the statistical data to a remote computing device.
Dependencies are inferred from the claim text.