IP Library Granted Patent US 8,943,479
Granted Patent B1
US 8,943,479 · App. 14/461,296 · Granted Jan 27, 2015

Generating profiling data

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,943,479
App. No.
14/461,296
Granted
Jan 27, 2015
Kind
B1
Abstract

Systems and methods for generating profiling data include monitoring the execution of a task on a thread of a program. Profiling data may be generated that includes metrics regarding the execution of the task. A profiling data aggregation service may aggregate generated profiling data from a plurality of devices that execute the program.

Claims (31)

1. A computerized method for profiling a program comprising:

receiving, at a processing circuit of a first device, a request to execute a task on a thread of a commercially-released version of a software product;

monitoring, by the processing circuit, the execution of the task;

generating profiling data indicative of one or more metrics regarding the execution of the task, the commercially-released version of the software product including instructions to generate the profiling data during execution of the software product on the first device; and

providing, over a network, the profiling data to a profiling data aggregation service for generation of aggregated profiling data.

2. The method of claim 1 , wherein the profiling data identifies at least one of a total run time for the task, an average run time for the task, or a maximum run time for the task.

3. The method of claim 1 , wherein the profiling data identifies a thread from which the task spawned or identifies the thread on which the task was executed.

4. The method of claim 1 , wherein the profiling data identifies a source code location for one or more functions executed by the task.

5. The method of claim 1 , wherein the software product is a web browser application that includes a plurality of processes, each process executing on one or more threads.

6. The method of claim 1 , wherein the execution of the task is monitored by monitoring random samples of executing tasks.

7. The method of claim 1 , wherein the profiling data is provided to the profiling data aggregation service in response to receiving a request from a user interface device.

8. The method of claim 1 , wherein the profiling data provided to the profiling data aggregation service comprises profiling data aggregated by the processing circuit.

9. The method of claim 1 , wherein the execution of the task is always monitored by the processing circuit.

10. A system for profiling a program comprising a processing circuit operable to:

receive a request to execute a task on a thread of a commercially-released version of a software product;

monitor the execution of the task;

generate profiling data indicative of one or more metrics regarding the execution of the task, the commercially-released version of the software product including instructions to generate the profiling data during execution of the software product on a first device; and

provide, over a network, the profiling data to a profiling data aggregation service for generation of aggregated profiling data.

11. The system of claim 10 , wherein the profiling data identifies at least one of a total run time for the task, an average run time for the task, or a maximum run time for the task.

12. The system of claim 10 , wherein the profiling data identifies a thread from which the task spawned or identifies the thread on which the task was executed.

13. The system of claim 10 , wherein the profiling data identifies a source code location for one or more functions executed by the task.

14. The system of claim 10 , wherein the software product is a web browser application that includes a plurality of processes, each process executing on one or more threads.

15. The system of claim 10 , wherein the execution of the task is monitored by monitoring random samples of executing tasks.

16. The system of claim 10 , wherein the profiling data is provided to the data aggregation service in response to receiving a request from a user interface device.

17. The system of claim 10 , wherein the profiling data provided to the profiling data aggregation service comprises profiling data aggregated by the processing circuit.

18. The system of claim 10 , wherein the execution of the task is always monitored by the processing circuit.

19. A non-transitory computer-readable storage medium having instructions therein, the instructions being executable by a processor to cause the processor to perform operations comprising:

providing a program to a plurality of electronic devices, the program being a commercially-released version of a software product for use by consumers, the program being a multi-threaded application, the program including instructions to generate profiling data indicative of one or more metrics regarding the execution of a task on a thread of the program during execution of the program at the plurality of electronic devices;

receive the profiling data from the plurality of electronic devices regarding the execution of the task by the plurality of electronic devices;

aggregate the profiling data from the plurality of electronic devices regarding the execution of the task, wherein the profiling data identifies at least one of a total run time for the task, an average run time for the task, or a maximum run time for the task.

20. The non-transitory computer-readable storage medium of claim 19 , wherein the profiling data identifies at least one of: a thread from which the task spawned, the thread on which the task was executed, or a source code location for one or more functions executed by the task.

Assignments (1)
CHANGE OF NAME Recorded Dec 5, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044695/0115 →