Durante la profilazione della mia applicazione mi sono imbattuto in un comportamento strano - il thread DestroyJavaVM è SEMPRE in esecuzione - il 100% delle volte.Thread DestroyJavaVM SEMPRE in esecuzione
Dopo aver fatto un po 'di ricerca sul tema, su cui non c'è quasi più preziose informazioni on-line, tutto quello che ho capito è che questa discussione dovrebbe unload the JVM upon exit.
Se è questo il caso, perché questo thread in RUNNING indica il 100% del tempo dal primo momento in cui avvio la mia applicazione? Non consuma risorse preziose e quindi può causare un OutOfMemoryError
(come a volte capita)?
Esiste un riferimento ufficiale a ciò che fa effettivamente questo thread e che cosa attiva la sua inizializzazione?
Grazie
È più probabile che altri thread causino il 'OOME'. Non inizierei dal sospetto meno ovvio. Hai profilato i tuoi thread di applicazioni per l'utilizzo della memoria? Questo sarebbe l'approccio semplice per il debug dei tuoi misteriosi 'OOME's. – Kayaman
10 volte per la risposta. Naturalmente ho usato altre misure per scoprire perché ottengo l'OOME (che, BTW è un errore "GC Overhead Limit exceeded", causato da un elevato utilizzo della CPU), ma senza successo. Questa è la mia ultima risorsa. Questo thread è molto sospetto e voglio sapere quali attività ha in esecuzione il 100% delle volte. – KidCrippler