Abstract

Instrumentation-based profiling provides a number of benefits, but can also cause high performance overhead. The negative impact of this overhead could be mitigated considerably if only a small part of the target application (e.g. one that has previously been identified as a bottleneck) is instrumented, possibly for a short time only, while the rest of the application code runs at full speed. In this paper we present an experimental profiling system called JFluid, which includes a modified Java/spl trade/ VM and a GUI tool, and addresses both of the above issues. Our tool supports dynamic instrumentation of a group of methods defined as an arbitrary root method plus all methods that it calls (a call subgraph). Methods that belong to a call subgraph are revealed and instrumented lazily, to minimise the number of methods instrumented unnecessarily. Measurements that we obtain when performing full and partial program profiling show that the overhead can be reduced substantially using this technique, and that it is more beneficial when used for large server-side Java applications as opposed to small benchmarks.

Full Text
Paper version not known

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.