Eclipse MAT (Eclipse Memory Analyzer) è una versione di Eclipse pensata per consentire un’analisi approfondita dello stato di utilizzo della memoria di un applicativo Java ed individuarne eventuali memory leak. Vediamone più in dettaglio le peculiarità.
Ottenere un heap dump della memoria
Per iniziare l’analisi della memoria è necessario ottenere un heap dump dell’applicativo Java. Eclipse MAT consente di ottenerne uno dai processi attualmente eseguiti sul pc, che vengono presentati con un comodo elenco. Nel caso in cui l’applicativo risieda su un’altra macchina, sarà necessario procurarsi il dump della memoria in un altro modo (usando ad esempio i binari Jmap o Jconsole disponibili nel pacchetto di una JVM).
Overview dello consumo di memoria
Un primo grafico a torta ci presenta lo stato complessivo della memoria del processo. Si ha subito un’indicazione visiva degli oggetti che occupano più spazio.
Con il grafico di tipo “Dominator Tree”, invece, si ottiene una lista ordinata di tutti gli oggetti con relativo package, con l’indicazione dettagliata della percentuale di memoria heap occupata.
Class reference
Con lo strumento Inspector si ottiene il dettaglio della “Class Reference”, in cui vengono elencate tutte le classi con il tipo, il numero e la dimensione degli oggetti utilizzati al loro interno, oltre ad una serie di altri dati.
Leak suspects
Con i grafici relativi ai sospetti leak entriamo nella caratteristica a mio avviso più interessante di Eclipse MAT. C’è infatti l’indicazione precisa delle potenziali cause di un out of memory, descritte sia come grafico a torta sia con una breve descrizione lista degli oggetti relativi.
Top consumers
Infine, i Top Consumers sono gli oggetti che occupano la dimensione maggiore nella memoria heap.