Patent ID: 9740588
Date: 2017-08-22
CPC Classifications: G06F

Claim:
1. A computer-implemented method of reducing impact of performance data gathering on execution of instrumented code, the method comprising: gathering respective first performance data for each of a plurality of routines in the instrumented code over a plurality of execution instances of the instrumented code; establishing a respective first pattern of execution for at least one selected routine from the plurality of routines based on respective execution times from the respective first performance data of the at least one selected routine over the plurality of execution instances; after establishing the respective first pattern of execution for the at least one selected routine from the plurality of routines, gathering respective second performance data for the at least one selected routine from the plurality of routines; for the at least one selected routine from the plurality of routines, comparing the respective second performance data to the respective first pattern of execution established based on the respective first performance data for the at least one selected routine to determine whether the respective second performance data for the at least one selected routine follows the respective first pattern of execution for the at least one selected routine; in response to determining that the at least one selected routine follows the respective first pattern of execution for the at least one selected routine, removing instrumentation associated with the at least one selected routine; after removing the instrumentation associated with the at least one selected routine, identifying an indicator that the at least one selected routine has ceased following the respective first pattern of execution, wherein identifying the indicator that the at least one selected routine has ceased following the respective pattern comprises determining that execution time of a higher level routine which calls the at least one selected routine has changed; in response to identifying the indicator that the at least one selected routine has ceased following the respective first pattern of execution, reinserting the instrumentation associated with the at least one selected routine; after reinserting the instrumentation associated with the at least one selected routine, gathering respective third performance data for the at least one selected routine over a plurality of execution instances of the instrumented code; establishing a new respective second pattern of execution for the at least one selected routine based on respective execution times from the respective third performance data of the at least one selected routine after reinserting the instrumentation associated with the at least one selected routine; after establishing the respective second pattern of execution for the at least one selected routine from the plurality of routines, gathering respective fourth performance data for the at least one selected routine from the plurality of routines; for the at least one selected routine from the plurality of routines, comparing the respective fourth performance data to the respective second pattern of execution established based on the respective third performance data for the at least one selected routine to determine whether the respective fourth performance data for the at least one selected routine follows the respective second pattern of execution for the at least one selected routine; and in response to determining that the at least one selected routine follows the respective second pattern of execution for the at least one selected routine, removing instrumentation associated with the at least one selected routine.