I've been searching all over for a consistent and clear explanation of what 'self time' actually refers to in the VisualVM context and how does it differ to 'self time (cpu)'. Also does 'self time [%]' refer to self time or self time cpu.
There doesn't appear to be much documentation on this or at least I haven't found it. So any thoughts/input will be appreciated.
Self Time is a wall-clock time spent in the method itself (includes time waiting/sleeping). Self Time (CPU) is a time processor time, so it does NOT include time spent waiting, sleeping, etc. Both columns do NOT include time spent in methods invoked from that method.
Java VisualVM is a tool that provides a visual interface for viewing detailed information about Java applications while they are running on a Java Virtual Machine (JVM), and for troubleshooting and profiling these applications.
What is VisualVM. It is a tool automatically available after JDK is installed. The executable file could be found on your <JDK installation folder>/bin as displayed below. In order to measure the performance of your application, it is necessary for the application to be recognized by VisualVM first.
Java VisualVM was first bundled with the the Java platform, Standard Edition (Java SE) in JDK version 6, update 7.
Self Time
is a wall-clock time spent in the method itself (includes time waiting/sleeping). Self Time (CPU)
is a time processor time, so it does NOT include time spent waiting, sleeping, etc. Self Time
and Self Time (CPU)
in the sampler are approximation of actual data. Self Time [%]
refers to one of the two selected Self Time [(CPU)]
columns. If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With