User directed profiling
Abstract
A user can control when data sampling takes place, what data is collected and where in the code the data sampling profiler is invoked. By identifying a section of user code to the profiler, the profiler is instructed to dynamically instrument the identified user code executing in a target application process. The instrumentation invokes the profiler before or after or both before and after the identified section of user code is executed. By identifying an entry point of a component or technology external to the user code, the profiler is instructed to dynamically instrument the external component so that data sampling is logged when the user code calls the entry point of the external component. The data sampling process can be monitored and the sampling rate can be dynamically adjusted.
Claims
exact text as granted — not AI-modifiedWhat is claimed:
1 . A system comprising:
at least one processor of a computing device; a memory of the computing device; and at least one module loaded into the memory causing the at least one processor to:
receive at least one user directive, the at least one user directive specifying a section of code where profiling of a target application process takes place, the at least one user directive determining when during execution of the target application process, profiling of the target application process takes place.
2 . The system of claim 1 , further comprising:
at least one module loaded into the memory causing the at least one processor to: automatically and dynamically instrument a section of code loaded into a target application process to invoke a profiling module.
3 . The system of claim 1 , further comprising:
at least one module loaded into the memory causing the at least one processor to: collect data samples when the section of code identified by the at least one user directive is invoked.
4 . The system of claim 2 , wherein instrumenting the section of code loaded into the target application process comprises detouring code processing from an original code path associated with un-instrumented section of code to a code path that invokes the profiling module.
5 . The system of claim 1 , wherein the at least one user directive identifies a section of code to be dynamically instrumented, the section of code loaded into the target application process.
6 . The system of claim 1 , wherein the section of code is user code comprising at least one function, block, group of instructions, or instruction.
7 . The system of claim 1 , wherein the section of code is a component external to the user code called by the user code.
8 . The system of claim 1 , wherein the section of code is user code comprising an expression.
9 . A method comprising:
receiving at least one user directive by a processor of a computing device, the at least one user directive controlling a location in code in a target application process at which data sampling is performed, the user directive controlling the location at which data sampling is performed by identifying a section of code in the target application process; in response to invoking the identified section of code, invoking a profiling module one of before, after, or before and after executing the identified section of code, the profiling module sampling data when invoked; and displaying the collected sampling data.
10 . The method of claim 9 , further comprising:
dynamically instrumenting the identified section of code in the target application process to invoke the profiling module before, after or both before and after executing the identified section of code.
11 . The method of claim 9 , further comprising:
separating data sampling conducted in response to receiving the at least one user directive from other data sampling performed by the profiling module and displaying the separated data sampling data on a display device.
12 . The method of claim 9 , further comprising:
determining that the section of code in the target application process identified in the at least one user directive identifies a component external to user code that calls an entry point specified in the at least one user directive.
13 . The method of claim 9 , further comprising:
monitoring sampling of the target application process and dynamically adjusting sampling rate of the target application process.
14 . The method of claim 9 , further comprising:
excluding from logging data sampling occurring in response to calls from a first external component to a second external component.
15 . A computer-readable storage medium comprising computer-executable instructions which when executed cause at least one processor of a computing device to:
receive at least one user directive, the at least one user directive specifying a section of code where profiling of a target application process is invoked.
16 . The computer-readable storage medium of claim 15 , comprising further computer-executable instructions, which when executed cause the at least one processor to:
automatically and dynamically instrument a section of code loaded into a target application process to invoke a profiling module.
17 . The computer-readable storage medium of claim 15 , comprising further computer-executable instructions, which when executed cause the at least one processor to:
collect data samples when the section of code identified by the at least one user directive is invoked.
18 . The computer-readable storage medium of claim 15 , comprising further computer-executable instructions, which when executed cause the at least one processor to:
receive the at least one user directive identifying user code comprising a section of code comprising a function, block, group of instructions, or instruction.
19 . The computer-readable storage medium of claim 15 , comprising further computer-executable instructions, which when executed cause the at least one processor to:
receive the at least one user directive identifying user code comprising an expression.
20 . The computer-readable storage medium of claim 15 , comprising further computer-executable instructions, which when executed cause the at least one processor to:
receive the at least one user directive identifying a component external to user code, the user code calling the component.Join the waitlist — get patent alerts
Track US2014068569A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.