Come faccio a trovare il mio livello di codice l'utilizzo dello spazio PermGen?
-
22-08-2019 - |
Domanda
Sto cercando di diagnosticare un errore di java.lang.OutOfMemoryError: PermGen Space
quando viene eseguito su di Sun Hotspot JVM, e vorrei sapere quanto spazio PermGen mio programma sta usando in vari punti. C'è un modo di trovare queste informazioni a livello di codice?
Soluzione
Si può usare qualcosa di simile a questo:
Iterator<MemoryPoolMXBean> iter = ManagementFactory.getMemoryPoolMXBeans().iterator();
while (iter.hasNext())
{
MemoryPoolMXBean item = iter.next();
String name = item.getName();
MemoryType type = item.getType();
MemoryUsage usage = item.getUsage();
MemoryUsage peak = item.getPeakUsage();
MemoryUsage collections = item.getCollectionUsage();
}
Questo vi darà tutti i tipi di memoria. Siete interessati a tipo "Perm Gen".
Altri suggerimenti
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow