11

Visual Studio'm (2010 SP1) ciddi bir bellek sızıntısına ve yüklü uzantılardan bir veya daha fazlasına bağlı görünüyor.Visual Studio uzantısının bellek sızıntılarına neden yol açtığını nasıl öğrenebilirim?

Uzantıları ve eklentileri açıp kapatarak daraltmaya çalıştım, ancak önemli bir sızıntı oluşturmak için biraz zaman harcamış ve sonuçlar tamamen kesin değil. Devenv.exe işleminin 2 GB bellek kullanmadan önce birkaç saatten daha uzun sürüyor ve çalışmak için bir acıya dönüşen çöp dökmeye başlıyor.

VS'nin uzantılar için ayrılan bellekte bilgi yaymasını sağlamanın bir yolu var mı?

Yönetilen uzantılar kendi AppDomain'de çalışıyor mu? Belki de bu, problemi belirlemede yardımcı olabilecek bazı performans sayaçlarını açmamı sağlar.

Sorun ortadan kalkıncaya kadar tek tek işleri devre dışı bırakmaktan başka sorunu gidermek için yapabileceğim başka bir şey var mı?

+0

Sorunu yalıtmak için herhangi bir araç kullanıyor musunuz (I.e. JetBrains dotTrace, Scitech bellek profiler, .net clr profiler)? Burada iyi bir liste var http://stackoverflow.com/questions/3927/what-are-some-good-net-profilers – Maciej

+0

Hem RedGate hem de jetBrains araçları için lisansım var, ama nasıl görmediklerini Onlar, suçluyu tanımlayabileceğiniz bir noktaya büyümüş olmak için bellek sızıntısı için VS kullanmanın bir saat sürdüğünü göz önünde bulundurarak çok kullanımda olabilirler. Scitech, devenv gibi yerel bir süreçle bir şeyler yapabilirdi, ama sahip olduğum araçların çok yardımcı olacağını düşünmüyorum. –

+0

Netleştirmek gerekirse, sızıntının "her zaman mevcut" olduğunu sanmıyorum. Gelişim sırasında yaptığım bir şey sonunda problemi tetikliyor gibi görünüyor ve bu noktadan sonra VS sadece hafızayı oldukça hızlı bir şekilde tüketmeye başlıyor. Bundan sonra bir profiler ekleyebilirsem, aslında yararlı bir sonuç verebilir. –

cevap

1

JetBrains faq page belgesine göre, bellek sızıntısı sorunlarını görüntülemeye başladığında halihazırda çalışan bir işlem için ekleyebilmeniz gerekir. Belki de ona bir şans verebilirsin. Faq, sürüm 5'i kullanmanız gerektiğini belirtir.

+0

Birisi sadece/dumpMemoryStatsOnExit anahtarı veya bir şey ile devenv çalıştırmak için bana söyleyebilirim sanıyordum, ama sanırım bir profiler ile neler olacağını görmek gerekir. Teşekkürler, yine de buna özel bir görev yapmayan herhangi bir seçeneğe açık olun .. –

İlgili konular