İzin verdiğim bir gen bellek sızıntısı var. Jvisualvm kullanarak profil oluşturma, sıcak dağıtım yapılırken (örn. JVM'yi öldürmeden, tomcat, WebSphere, WebLogic'de bir uygulamayı durdurup başlatmaya başladığında) PermGen alanının sürekli olarak arttığını gösterir.Java Sınıfı (PermGen) Bellek Kaçak (Web Uygulamaları) - Genel Çözüm?
Okuma sonrasında, jhat ve diğer gelişmiş araçları kullanarak, muhtemelen üst sınıf yükleyicilerinde bulunan bir sınıftan WebAppClassLoader
referansını aldığımı fark ettim.
Ben böylece (ı
çöp toplanacak değil, sınıfından yükleyici sorumludur öğrenir basit bir yardımcı yok mudur jhat bazı kitlesel JavaScript tabanlı sorguları yaptığı halde bunu saptayamadığı tarafından yüklenen sınıfların çöp toplama izin)?
Ben JProfiler, jvisualvm, jhat ve tüm LMGTFY arkadaşlara Google'daçok çalıştı - Bir gün ve adım talimatlar, hiçbir şans adımla forumları okurken bir buçuk geçirdim. Çıktıları olan bir yardımcı program veya kod arıyorum: Y sınıfının Nesne X'i, sınıflarınızın kaldırılmasını engelleyen tek GC kökünü oluşturur.
JProfiler size hangi bilgileri verdi? Çöp toplayıcısını açıkça aradığınızda hangi nesneler kalır? – Bozho
ve nasıl sıcak dağıtım yapıyorsunuz (tomcat'ta)? – Bozho
@Bozho - Tomcat Manager'ı kullanarak durdur/başlat düğmesine basın. Kalan nesneler WebAppClassLoader ve yüklenen sınıfların tamamıdır. En yakın GC kök avı pratik sonuçlar vermedi. –