Intellij Idea - Profilazione

Profiler fornisce informazioni dettagliate sulla tua applicazione come la CPU, la memoria e l'utilizzo dell'heap. Fornisce inoltre dettagli sui thread dell'applicazione. Questo capitolo discute l'utilizzo dello strumento VisualVM per la creazione di profili di applicazioni Java. Può profilare entità come CPU e heap.

Si consiglia ai lettori di questo tutorial di acquisire familiarità con i concetti del profiler dell'applicazione.

introduzione

VisualVM è uno strumento visivo che integra strumenti JDK e offre potenti funzionalità di profiling. Consente di generare e analizzare i dati dell'heap, rintracciare le perdite di memoria, monitorare il Garbage Collector ed eseguire la profilazione della memoria e della CPU.

Benefici

  • Interfaccia visiva per applicazioni Java locali e remote in esecuzione su JVM.

  • Monitoraggio dell'utilizzo della memoria dell'applicazione e del comportamento di runtime dell'applicazione.

  • Monitoraggio dei thread dell'applicazione

  • Analizzando le allocazioni di memoria a diverse applicazioni.

  • Dump dei thread: molto utili in caso di deadlock e condizioni di gara.

  • Dump dell'heap: molto utile per analizzare l'allocazione della memoria dell'heap.

Configurazione

In questa sezione impareremo i passaggi eseguiti per configurare VisualVM. I passaggi sono i seguenti:

  • Scaricalo da qui .

  • Estrai il file zip.

  • Vai al file etc / visualvm.conf e aggiungi la seguente riga in questo file:

visualvm_jdkhome=<path of JDK>
  • Se il tuo JDK è installato in C:\Program Files\Java\jdk-9.0.1 directory quindi dovrebbe assomigliare a questo -

visualvm_jdkhome="C:\Program Files\Java\jdk-9.0.1"

Applicazione di monitoraggio

Vediamo ora come monitorare l'applicazione. Considera i seguenti passaggi per capire lo stesso:

  • Fare doppio clic sul file visualvm.exe.
  • Seleziona l'applicazione dal riquadro sinistro.
  • Seleziona la scheda Monitor.

Verrai indirizzato a una finestra in cui otterrai i dettagli su CPU, Heap, Classi e thread. Per essere precisi con l'utilizzo, passa il mouse su qualsiasi grafico. Possiamo vedere l'utilizzo di Heap nello screenshot qui sopra.

Approfondimenti sui thread

L'applicazione Java può contenere più thread di esecuzione. Per saperne di più sui thread, seleziona la scheda Thread di una particolare applicazione. Fornirà varie statistiche sui thread come il numero di thread live e thread daemon. I diversi stati del thread sono Running, Sleeping, Waiting, Park e Monitor.

Applicazione di campionamento

VisualVM supporta CPU, campionamento della memoria e rilevamento di perdite di memoria. Per l'applicazione di esempio, selezionare l'applicazione e scegliere la scheda di esempio -

Campionamento della CPU

Per il campionamento della CPU, fare clic sul pulsante CPU come mostrato nella seguente schermata:

Profilazione della memoria

Per la profilazione della memoria, fare clic sul pulsante Memoria come mostrato nella seguente schermata -

Perdite di memoria

Si verifica una perdita di memoria quando un'applicazione, durante l'esecuzione, riempie lentamente l'heap con oggetti che non vengono eliminati automaticamente dal programma.

Se un oggetto non utilizzato dal programma non viene eliminato, rimane in memoria e il GC non può recuperare il suo spazio. Se il numero di byte e il numero di istanze nella tua applicazione dovessero aumentare costantemente e in modo significativo nel tuo programma al punto da consumare tutto lo spazio, ciò può essere un'indicazione di una perdita di memoria.

Applicazione di profilazione

In questa sezione impareremo come creare il profilo di un'applicazione. Per creare il profilo di un'applicazione, selezionare l'applicazione dal riquadro di sinistra e fare clic sulla scheda del profilo -

Profilazione della CPU

Per eseguire la profilazione della CPU, fare clic sul pulsante CPU come mostrato nello screenshot qui sotto -

Profilazione della memoria

Per eseguire la profilazione della CPU, fare clic sul pulsante CPU come mostrato nello screenshot qui sotto -