Afin d'effectuer un thread dump/heap dump à partir d'un processus Java enfant sous Windows, vous devez d'abord identifier le processus enfant.
En lançant la commande : jps vous pourrez obtenir tous les ID des processus java qui sont en cours d'exécution sur votre machine Windows. Dans cette liste, vous devez sélectionner l'Id du processus enfant. Une fois que vous avez l'ID du processus enfant, il existe plusieurs options pour capturer le vidage du fil et le vidage du tas.
Capturer les Thread Dumps :
Il existe 8 options pour capturer les vidages de threads :
- jstack
- tuer -3
- jvisualVM
- JMC
- Windows (Ctrl + Pause)
- ThreadMXBean
- Outils APM
- jcmd
Vous trouverez des détails sur chaque option dans cet article . Une fois que vous avez des vidages de threads de capture, vous pouvez utiliser des outils tels que fastThread , Samuraito analyser les vidages de fils.
Capturing Heap Dumps :
Il existe 7 options pour capturer les vidanges de tas :
-
jmap
-
-XX:+HeapDumpOnOutOfMemoryError
-
jcmd
-
JVisualVM
-
JMX
-
Approche programmatique
-
Consoles administratives
Vous trouverez des détails sur chaque option dans cet article . Une fois que vous avez capturé le vidage du tas, vous pouvez utiliser des outils tels que Outil d'analyse de la mémoire d'Eclipse , HeapHero pour analyser les vidages de tas capturés.