1. A computer-implemented method for collecting performance metrics of a remote method invocation, the method comprising: capturing original bytecode; instrumenting said original bytecode with sensor bytecode to form instrumented bytecode; forwarding the instrumented bytecode to an application; and collecting said performance metrics based on execution of the sensor bytecode in a plurality of remote method invocations concurrently, comprising: using the sensor bytecode in a first remote method invocation to store a first subset of said performance metrics in a first thread-local-storage object for a first thread in which the first remote method invocation is running, wherein the first subset of said performance metrics are performance metrics for the first remote method invocation; and using the sensor bytecode in a second remote method invocation to store a second subset of said performance metrics in a second thread-local-storage object for a second thread in which the second remote method invocation is running, wherein the second subset of said performance metrics are performance metrics for the second remote method invocation, wherein said collecting includes collecting a portion of said performance metrics by a serialization sensor which counts the number of objects visited during serialization.