1. A computer-implemented method of monitoring response time of function associated with a software component, comprising: operating on a bytecode representation of a function to be instrumented by inserting an instrumentation code in the bytecode representation of the function without modifying respective source code of the function and while classes of the function are being loaded for execution and incorporating instrumentation hooks into the bytecode representation prior to loading and initialization of a class containing the function by a virtual machine; passing information to plug-in instruments when the function is called, wherein different plug-in instruments can be used at different times without re-instrumenting the classes of the function; loading an appropriate plug-in instrument object when instrumented class is initialized; generating a call to an Application Response Measurement (ARM) agent to cause the ARM agent to effect generation of a start time marker upon start of execution of the function and a stop time marker upon completion of execution of the function, wherein the ARM agent is one of a plurality of agents of an ARM protocol; generating a correlator, the correlator configured to identify a relationship of the function with at least one other function, the correlator being removed in response to completion of the function and the at least one other function; and utilizing the start and stop time markers to determine a response time of the function.