Java Reference
In-Depth Information
s
d
m
P
r
o
i
l
e
s
Figure 13-4. hreads tab
Locked
java.util.concurrent
lock objects place their
threads into WAITING (yellow in VisualVM). This is
because the implementation provided by
java.util.concur
rent
is purely user space and does not involve the operating
system.
The Sampler tab, as shown in
Figure 13-5
, samples either memory or CPU. In the
memory mode, it samples object creation—either overall, or JVM only, or even on a
per-thread basis.
This enables the developer to see what the most common objects are—in terms of
bytes and instances (in a manner similar to
jmap -histo
).
The objects displayed on the Metaspace submode are typically core Java/JVM con‐
structs.
1
Normally, we need to look deeper into other parts of the system, such as
classloading to see the code responsible for creating these objects.
jvisualvm
has a plug-in system, which can be used to extend the functionality of
the framework by downloading and installing extra plug-ins. We recommend
always installing the MBeans plugin (shown in
Figure 13-6
) and the VisualGC plu‐
gin (discussed next, and shown in
Figure 13-7
), and usually the JConsole compati‐
bility plugin, just in case.
1
Before Java 8, a construct called PermGen was used instead of Metaspace.