2016-05-23 29 views
3

Ich analysiere die Threads in der Heap-Dump mit der VisualVM und frage mich, was ist die Zählung nach der Local Variable: byte[] in den unteren Thread bedeutet? Bedeutet das die Größe der Variablen? oder die Gesamtzahl der Instanzen der Variablen? oder irgendetwas anderes?In einem Visual-VM-Heap-Abbild, wie lautet die Nummer nach "Lokale Variable" für Threads?

"Multicast Heartbeat Receiver Thread" daemon prio=5 tid=38 RUNNABLE 
    at java.util.zip.Inflater.inflateBytes(Native Method) 
    at java.util.zip.Inflater.inflate(<unknown string>) 
     Local Variable: java.util.zip.ZStreamRef#366 
     Local Variable: java.util.zip.Inflater#366 
    at java.util.zip.InflaterInputStream.read(<unknown string>) 
    at java.util.zip.GZIPInputStream.read(<unknown string>) 
    at net.sf.ehcache.distribution.PayloadUtil.ungzip(PayloadUtil.java:194) 
     Local Variable: java.util.zip.GZIPInputStream#1 
     Local Variable: byte[]#537427 
     Local Variable: byte[]#537474 
     Local Variable: java.io.ByteArrayOutputStream#317 
    at net.sf.ehcache.distribution.MulticastKeepaliveHeartbeatReceiver$MulticastReceiverThread.processPayload(MulticastKeepaliveHeartbeatReceiver.java:142) 
     Local Variable: org.glowroot.agent.model.TraceEntryImpl#12145 
     Local Variable: org.glowroot.agent.model.OptionalThreadContextImpl#7 
    at net.sf.ehcache.distribution.MulticastKeepaliveHeartbeatReceiver$MulticastReceiverThread.run(MulticastKeepaliveHeartbeatReceiver.java:126) 
     Local Variable: byte[]#4513 
+0

Ein Byte-Array? .. –

Antwort

3

Die Nummer nach der # ist eine Sequenznummer. Z.B. Local Variable: byte[]#537427 bedeutet, dass dies Ihre 537427: th-Instanz byte[] ist.

Es wird deutlich, wenn Sie in visual vm auf die Registerkarte instances klicken. Im folgenden Bild sehe ich eine Liste aller meiner Byte-Arrays in meinem Testprogramm, nummeriert von #1 und weiter, wobei N Elemente die Größe des Arrays bezeichnet.

enter image description here