Come determinare le dimensioni di PermGen all'interno di un'applicazione Java (vale a dire, a livello di codice)?

StackOverflow https://stackoverflow.com/questions/4071440

Domanda

  1. C'è un modo per misurare il momento utilizzato dimensioni di generazione permanenti (PermGen) all'interno della mia applicazione Java? Non posso usare strumenti di profiling esterni come VisualVM.

  2. Ancora meglio sarebbe una stima del consumo di memoria di una classe Java nel PermGen. E 'quasi proporzionale alla dimensione del file bytecode?

È stato utile?

Soluzione

Si potrebbe usare MemoryMXBean che viene fornito con JDK. Ma io non credo che ci sia un modo per interrogare sull'uso PermGen dall'interno di un'applicazione in esecuzione. Documenti su MemoryMXBean .

Altri suggerimenti

È possibile utilizzare jvisualvm utensile dal JDK con visivo GC plugin per monitorare tutte le zone heap JVM tra cui PermGen.

Se non siete su Windows, si potrebbe provare jmap che viene fornito con il JDK.

È possibile utilizzare il comando jmap:

  

jmap [opzione]       (Per la connessione al processo in esecuzione)

     

jmap [opzione]       (Per la connessione a un file core)

     

jmap [opzione] [server_id @]       (Per la connessione al server di debug remoto)

in cui le opzioni è uno di:

  

-heap: per stampare sintesi java mucchio

     

-permstat: per stampare le statistiche permanenti generazione

La dimensione del PermGen non ha nulla a che fare con la dimensione dei file di classe. La dimensione predefinita di PermGen secondo il Sun è di 64 MB. Se si desidera aumentarlo è possibile impostare in modo esplicito utilizzando:

-XX:PermSize=164m

nella riga di comando Java o script di avvio. Questo è anche come si può sapere che cosa è impostato su senza fare affidamento su uno strumento esterno.

EDIT:

Leggi questo articolo per determinare approssimativamente la quantità di PermGen è attualmente utilizzato a livello di codice (cioè senza strumenti esterni):

http: //frankkieviet.blogspot. com / 2006/10 / how-to-fix-temuto-PermGen-space.html

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top