2010-02-26 23 views

risposta

7

È necessario avviare il processo Java con the correct arguments, che varia leggermente a seconda della versione di JVM. Quindi, inviare un segnale QUIT al processo per generare un nuovo file.

L'uscita viene normalmente generata quando la VM esce, sebbene possa essere disabilitata impostando l'opzione "dump on exit" su "n" (doe = n). Inoltre, viene generato un profilo quando si preme Ctrl- \ o Ctrl-Break (a seconda della piattaforma). Su Solaris OS e Linux viene generato anche un profilo quando viene ricevuto un segnale QUIT (kill -QUIT pid). Se Ctrl- \ o Ctrl-Break viene premuto più volte, vengono generati più profili per il singolo file.

1

VisualVM può aiutarti a capire cosa sta facendo il tuo processo, inclusa la possibilità di forzare arbitrariamente un dump dell'heap su un processo in esecuzione.

+0

non risponde alla domanda. – Ztyx

47

Sì. È possibile generare un file hprof (che contiene l'utilizzo di memoria heap) al volo usando lo strumento jmap, fornito con Java VM di Sun:

jmap -dump: file = < nome_file> < pid>

+0

Grazie per la risposta. Inoltre, puoi usare jps per trovare rapidamente il pid del tuo processo Java. –

0

jconsole ora ha la possibilità di creare un dump nella directory di lavoro corrente dell'app.

  1. Collegamento al JMX abilitata esempio
  2. Passare a com.sun.management -> HotspotDiagnostic -> Operazioni
  3. Fill in p0 dare un nome al Heap Dump
  4. premere il pulsante heapDump

Jconsole Screen Shot

Problemi correlati