IP Library Granted Patent US 10,613,965
Granted Patent B2
US 10,613,965 · App. 13/829,844 · Granted Apr 7, 2020

Method and system of visually combining profiling data from instrumentation and sampling

Inventors: Mark Edward Shepherd (Tiburon, CA); Michael James Andrew Smith (San Francisco, CA); George Comninos (San Francisco, CA); Gavin Murray Peacock (Walnut Creek, CA)
Assignee: Adobe Inc.
G06F11/3644
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 10,613,965
App. No.
13/829,844
Granted
Apr 7, 2020
Kind
B2
Abstract

Method and systems of visually depicting instrumented and sampled data are provided. A first stream of instrumented data, the instrumented data collected via execution of code contained in a user-scriptable engine. Then a second stream of sampled data is received, the sampled data collected by monitoring execution of code contained in scripts executed by the user-scriptable engine. Then an aggregated version of a portion of the instrumented data and an aggregated version of a portion of the sampled data are simultaneously displayed in one or more viewing regions. Then user interaction with an object pertaining to the aggregated version of a portion of the instrumented data is received. In response to the receiving user interaction with the object pertaining to the aggregated version of a portion of the instrumented data, the aggregated version of the portion of the sampled data is caused to change to depict a different aggregated version of a portion of the sampled data.

Claims (36)

1. A computerized method of visually depicting instrumented and sampled data, the method comprising:

accessing a first stream of instrumented data, the instrumented data collected via execution of code contained in a user-scriptable engine;

accessing a second stream of sampled data, the sampled data collected by monitoring execution of code contained in scripts executed by the user-scriptable engine;

simultaneously displaying an aggregated version of a portion of the instrumented data and an aggregated version of a first portion of the sampled data in one or more viewing regions;

receiving a user interaction directly selecting a displayed native function associated with a subset of the aggregated version of the portion of the instrumented data; and

in response to receiving the user interaction selecting the native function, filtering the aggregated version of the first portion of the sampled data to change to depict only an aggregated version of a second portion of the sampled data that corresponds to sampled data taken while executing the native function.

2. The method of claim 1 , the aggregated version of the portion of the instrumented data being located in a first viewing region and the aggregated version of the first and second portions of the sampled data being located in a second viewing region.

3. The method of claim 1 , the aggregated version of the first and second portions of the sampled data being located in a first viewing region and the aggregated version of the portion of the instrumented data being located in the first viewing region.

4. The method of claim 1 , further comprising:

a further user interaction—with the aggregated version of the second portion of the sampled data being a selection of a displayed non-native function or category of non-native functions.

5. The method of claim 4 , further comprising:

updating the subset of the aggregated version of the portion of the instrumented data including a depiction of an aggregation of instrumented data from native functions that executed during execution of the selected non-native function or category of non-native functions.

6. The method of claim 1 , the user interaction with the aggregated version of the portion of the instrumented data further being a selection of a category of native functions.

7. The method of claim 1 , the aggregated version of the second portion of the sampled data including a depiction of an aggregation of sampled data from non-native functions that caused execution, or occurred during the execution, of the selected native function.

8. An apparatus comprising:

a processor;

a database storing instrumented data and sampled data, the instrumented data collected via execution of code contained in native function calls, the sampled data collected by monitoring execution of non-native function calls;

a user interface configured to simultaneously display an aggregated version of a portion of the instrumented data and an aggregated version of a first portion of the sampled data in one or more viewing regions, receive user interaction directly selecting an activity, the activity associated with a subset of the aggregated version of the portion of the instrumented data, and, in response to receiving the user interaction selecting the activity, filtering the aggregated version of the first portion of the sampled data to change to depict only an aggregated version of a second portion of the sampled data that corresponds to sampled data taken inside the selected activity.

9. The apparatus of claim 8 , the database being located in a database layer written in an object-oriented programming language.

10. The apparatus of claim 8 , the user interface being located in a user interface layer written in a lightweight multi-paradigm programming language designed as a scripting language having extensible semantics.

11. The apparatus of claim 9 , the database storing telemetry data from a user-scriptable engine, the telemetry data being transferred to the database in three layers, one layer being a network layer, one layer being a format to serialize objects, and one layer being a telemetry layer defining a particular set of data formats understandable by the serialization layer that are used to transmit the instrumented and sampled data.

12. The apparatus of claim 11 , the telemetry data being stored by the database as sessions.

13. The apparatus of claim 9 , the database layer further comprising a query engine configured to receive requests for data generated by the user interface and retrieve information from the database in response to the requests.

14. A non-transitory machine-readable storage medium comprising a set of instructions which, when executed by a processor, causes execution of operations comprising:

accessing a first stream of instrumented data, the instrumented data collected via execution of code contained in a user-scriptable engine;

accessing a second stream of sampled data, the sampled data collected by monitoring execution of code contained in scripts executed by the user-scriptable engine;

simultaneously displaying an aggregated version of a first portion of the instrumented data and an aggregated version of a first portion of the sampled data in one or more viewing regions;

receiving a user interaction directly selecting a display object, the display object associated with a subset of the aggregated version of the first portion of the instrumented data; and

in response to receiving the user interaction selecting the display object, filtering the aggregated version of the first portion of the sampled data to change to depict only an aggregated version of a second portion of the sampled data, that corresponds to sampled data related to the display object.

15. The non-transitory machine-readable storage medium of claim 14 , the set of instructions further causing execution of the following operations:

receiving a subsequent user interaction directly selecting a piece of the aggregated version of the second portion of the sampled data; and

in response to receiving the subsequent user interaction selecting the piece of the aggregated version of the second portion of the sampled data, filtering the aggregated version of the portion of the instrumented data to change to depict an aggregated version of a second portion of the instrumented data corresponding to the selected piece.

16. The non-transitory machine-readable storage medium of claim 15 , wherein, the piece of the aggregated version of the second portion of the sampled data that is selected is a displayed non-native function or category of non-native functions.

17. The non-transitory machine-readable storage medium of claim 16 , the aggregated version of the second portion of the instrumented sampled data including instrumented data from native functions that executed during execution of the selected non-native function or category of non-native functions.

18. The non-transitory machine-readable storage medium of claim 14 , the user interaction directly selecting the display object, wherein the display object is one of hierarchical nested display objects, the hierarchical nested display objects including vector art, bitmaps, and text.

19. The non-transitory machine-readable storage medium of claim 15 , the aggregated version of the second portion of the instrumented data including a depiction of an aggregation of sampled data from non-native functions that caused execution of the selected native function or category of native functions.

Assignments (2)
CHANGE OF NAME Recorded Nov 29, 2018
From: ADOBE SYSTEMS INCORPORATED
To: ADOBE INC.
Reel/Frame 047687/0115 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 14, 2013
From: SHEPHERD, MARK EDWARD; SMITH, MICHAEL JAMES ANDREW; COMNINOS, GEORGE; PEACOCK, GAVIN MURRAY
To: ADOBE SYSTEMS INCORPORATED
Reel/Frame 030005/0882 →