Beim Profiling meiner Anwendung stieß ich auf ein seltsames Verhalten - der DestroyJavaVM-Thread läuft IMMER - 100% der Zeit.DestroyJavaVM Thread läuft IMMER
Nach einer wenig Forschung über das Thema zu tun, auf denen gibt es kaum wertvolle Informationen online, alles, was ich verstand, dass dieser Thread zu unload the JVM upon exit soll.
Wenn das der Fall ist, warum ist dieser Thread im RUNNING-Zustand 100% der Zeit vom ersten Moment an, an dem ich meine Anwendung starte? Verbraucht es nicht wertvolle Ressourcen und kann daher eine OutOfMemoryError
verursachen (wie ich manchmal bekomme)?
Gibt es einen offiziellen Verweis darauf, was dieser Thread eigentlich macht und was seine Initialisierung auslöst?
Dank
Es ist wahrscheinlicher, dass andere Threads das 'OOME' verursachen. Ich würde nicht mit dem am wenigsten offensichtlichen Verdächtigen beginnen. Haben Sie Ihre Anwendungsthreads für die Speicherbenutzung profiliert? Das wäre der direkte Weg, deine mysteriösen 'OOME's zu debuggen. – Kayaman
10x für die Antwort. Natürlich habe ich andere Maßnahmen verwendet, um herauszufinden, warum ich das OOME bekomme (was BTW ein "GC Overhead Limit Exceeded" -Fehler ist, der durch eine hohe CPU-Auslastung verursacht wird), aber ohne Erfolg. Das ist meine letzte Zuflucht. Dieser Thread ist sehr verdächtig und ich möchte wissen, welches Geschäft er zu 100% ausgeführt hat. – KidCrippler