Next: Overhead of Disabled Profiling
Up: Comprehensive Profiling Support in
Previous: Deadlocks
The profiling support we built into the Java virtual machine
achieves the following two desirable goals:
-
We must be able to support interactive profiler
front-ends. An approach that only supports collecting profiling
events into trace files does not meet the needs of programmers and
tools vendors. The user must to enable and disable profiling events
during program execution in order to pinpoint performance problems in
different stages of running an application.
-
The profiling support must incur low overhead so that
programmers can run the application at full speed when profiling
events are disabled, and only pay for the overhead of generating the
type of events specifically requested by the profiler front-end. An
approach that requires the use of a less optimized virtual machine
implementation for profiling leads to additional discrepancies between
the profiled environment and real-world scenarios.
Because of the low overhead of our approach, we are able to provide
full profiling support in the standard deployed version of the Java
virtual machine implementation. It is possible to start an application
normally, and enable the necessary profiling events later without
restarting the application.
Next: Overhead of Disabled Profiling
Up: Comprehensive Profiling Support in
Previous: Deadlocks
Sheng Liang
1998-12-19