System and method for automated tuning of program execution tracing
First Claim
1. A method for tracing comprising:
- receiving from a user an initial trace profile listing a first list of runtime events to be traced during execution of a program;
monitoring on one or more processors, via an auto-tuning process, a performance penalty incurred as a result of the tracing of said first list of runtime events during the execution of the program;
determining, via the auto-tuning process, a subset of said first list of runtime events the tracing of which produces the largest impact on said performance penalty to produce a second list of one or more runtime events to not be traced;
removing, via the auto-tuning process, said second list of runtime events from said first list of runtime events;
displaying, in response to the removing, a visual display, wherein the visual display comprises a graphical representation of the second list of runtime events;
receiving from the user a selection from the visual display, wherein the selection comprises one or more runtime events from the second list of runtime events; and
restoring the one or more runtime events contained in the selection from the second list of runtime events to the first list of runtime events.
5 Assignments
0 Petitions
Accused Products
Abstract
A tracing system that provides automated tuning of execution tracing by adjusting the collection of trace data is described. In one embodiment, the user sets an initial tracing profile for a tracing program. In addition, the user sets an upper limit for the tracing performance penalty. The auto-tuning system monitors the performance penalty induced by tracing and, when the performance impact is excessive, removes trace points that are causing the most impact on performance. Auto tuning is especially useful for performing software recording in mission-critical and/or time-critical applications, such as servers, real-time applications, etc. The system typically adjusts relatively quickly such that most users do not feel the influence of the tracer.
128 Citations
25 Claims
-
1. A method for tracing comprising:
-
receiving from a user an initial trace profile listing a first list of runtime events to be traced during execution of a program; monitoring on one or more processors, via an auto-tuning process, a performance penalty incurred as a result of the tracing of said first list of runtime events during the execution of the program; determining, via the auto-tuning process, a subset of said first list of runtime events the tracing of which produces the largest impact on said performance penalty to produce a second list of one or more runtime events to not be traced; removing, via the auto-tuning process, said second list of runtime events from said first list of runtime events; displaying, in response to the removing, a visual display, wherein the visual display comprises a graphical representation of the second list of runtime events; receiving from the user a selection from the visual display, wherein the selection comprises one or more runtime events from the second list of runtime events; and restoring the one or more runtime events contained in the selection from the second list of runtime events to the first list of runtime events. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method for automated tuning of program execution tracing, the method comprising:
-
receiving from a user an initial collection of trace points to be included in the program execution tracing; defining a maximum allowable level for a performance penalty of the program execution tracing; monitoring on one or more processors, via an auto-tuning process, the performance penalty of the program execution tracing while operating the program execution tracing in accordance with the trace points; removing, via the auto-tuning process, one or more trace points within the program execution tracing to maintain the monitored performance penalty below the maximum allowable level; displaying a graphical representation of the one or more removed trace points; receiving from the user a selection from the graphical representation, wherein the selection comprises a subset of the one or more removed trace points; and restoring the selected subset of the one or more removed trace points to the trace points within the program execution tracing. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. A non-transitory computer readable medium storing computer executable instructions which when executed on a processor perform a method for reducing a performance penalty incurred by a program being traced, the method-comprising:
-
receiving from a user an initial collection of trace points; defining a maximum allowable level for the performance penalty incurred by the program; tracing, on one or more processors, the program in accordance with the initial collection of trace points; assessing, via an auto-tuning process, the performance penalty incurred by the program due to the tracing; adjusting, via the auto-tuning process, the initial collection of trace points to maintain the assessed performance penalty below the maximum allowable level, wherein the adjusting comprises removing one or more trace points; displaying a visual display, wherein the visual display comprises a graphical representation of the one or more removed trace points; receiving from the user a selection from the visual display, wherein the selection comprises one or more of the removed trace points; restoring the one or more selected trace points to the adjusted initial collection of trace points to create a second collection of trace points; and tracing, on the one or more processors, the program in accordance with the second collection of trace points. - View Dependent Claims (17, 18, 19, 20, 21, 22)
-
-
23. A method for tracing comprising:
-
specifying an initial trace profile listing a first list of runtime events to be traced during execution of a program; monitoring on one or more processors, via an auto-tuning process, a performance criteria during the execution of the program while tracing said first list of runtime events; determining, via the auto-tuning process, a subset of said first list of runtime events the tracing of which produces the largest impact on said performance criteria to produce a second list of one or more runtime events to not be traced; removing, via the auto-tuning process, said second list of runtime events from said first list of runtime events; receiving, in response to the removing, a user-selected subset of the second list of runtime events; and restoring the user-selected subset of the second list of runtime events to the first list of runtime events. - View Dependent Claims (24, 25)
-
Specification