Neden ve Nasıl Olay İşleyicisi bellek sızıntıları önlemek için?
Ben sadece, olay işleyicileri C =
kullanarak ekleme bu StackOverflow bazı sorular ve cevapları okuyarak fark geldi# (veya sanırım, diğer .dil net) ortak bellek sızıntıları neden olabilir...
Geçmişte birçok kez bu gibi olay işleyicileri kullandım, ve, veya neden olmuş, benim uygulamalarda bellek sızıntıları neden olduğunu hiç fark etmemiştim.
Bu nasıl (neden bu aslında bir neden yok anlam bellek sızıntısı) ?-= kullanma yeterli ?
İyi ve basit herhangi bir şekilde bu verimli çoktan inşa edilmiş büyük bir uygulama izlemek için vardır ?
Şimdiden teşekkürler!
CEVAP
Bir olay işleyicisi, abone iken . nedenini açıklamak basit: ^em>Yayıneviolay tutan bir başvuruaboneolayın üzerinden işleyicisi temsilci (temsilci örnek bir yöntem olduğunu varsayarsak).
Eğer yayımcı daha abone daha yaşarsa, o zaman abone için diğer kaynaklar yok bile abone hayatta tutacak.
Eğer eşit bir işleyicisi ile olay aboneliğini iptal etme, o zaman evet, işleyicisi ve olası sızıntı kaldıracaktır. Ancak, benim durumumda, bu genellikle yayımcı ve abone zaten kabaca eşit ömürleri bulduğumuz için gerçekten bir sorundur nadiren.
olası bir neden... ama deneyimlerime göre aşırı sinirli değil. Sizin kilometre, elbette değişebilir... sadece dikkatli olmak gerekir.
Bir şekilde Tomcat undeployment bellek...
Bellek kullanımını azaltmak ve bellek ...
Nasıl Net/JavaScript Olay İşleyicisi K...
Nasıl bir denetimi çift tıklatın olay ...
Nasıl JSP dosyaları Java kod önlemek i...