Visual Studio Standard Collector işlemi nedir ve neden 10GB RAM kullanıyor?


22

Umarım bu yayınlamak için doğru yığın değişim sitesi ... SO için bir programlama sorusu gibi hissetmedim. Her neyse, Visual Studio 2015 çalıştırıyorum ve Windows'tan VS2015'i kapatmak için bir bildirim aldım çünkü belleği azaldı. 24GB RAM'im var ve dün yeniden başlatıldı, bu yüzden burada bir şey olduğunu düşünüyorum. Bazen C # etkileşimli penceresini ve python 2.7 etkileşimli penceresini kullanıyorum, ancak bunlar bu mesajın zamanında kullanılmıyordu.

Not: Bunu yazarken, devenv.exe'den (vs2015 işlemi) bir "Bilinmeyen sabit çökme" iletisi aldım. Ancak Standart Toplayıcı hizmeti hala 10,7 GB kadar çalışıyor.

Standart Toplayıcının ne olduğunu bilen var mı? RAM kullanımının artmasına ne sebep olabilir?

Not: Yine yazarken, Standart Toplayıcı Hizmetinin görev yöneticimde durduğunu ve tüm RAM'imin geri geldiğini fark ettim.

Bir Visual Studio "Standart Toplayıcı" işlemi tarafından büyük RAM kullanımı

Güncelleme: Bu, VS ekibinin güncelleme 1'de düzeltmeye çalıştığı bir hata olabilir gibi görünüyor. Kesinlikle güncelleme 1'i yükledim, ancak belki de bazı örnek kodlarda çoğaltmaya ve VS ekibine göndermeye çalışmalıyım. Kilitlenen devenv örneği de şu anda hata ayıklama değildi. (Bununla birlikte, görev yöneticisinde .vshost.exe uzantısı tarafından görebileceğiniz gibi hata ayıklamanın başka bir örneği vardır)

Bu devenv örneği çökmedi ve aslında hala hata ayıklayıcıda sorunsuz çalışıyor.

resim açıklamasını buraya girin


Teşhis Araçları ile ilgilenir. . Chrome'un 64 bit bir işlem olarak var olduğunu biliyor musunuz?
Ramhound

1
Bu bilinen bir hatadır ve bilgi için bir güncelleme kontrolüne sahip bir düzeltmesi vardır: connect.microsoft.com/VisualStudio/feedback/details/1630071/…
arana

@arana, düzeltme "olması gereken" güncelleme 1 çalıştırıyorum ...
C. Tewalt

1
@Ramhound Chrome bu soru ile gerçekten alakalı değil. Yoksa sadece yararlı bir bilgi paylaşımı paylaşıyor musunuz?
C. Tewalt

Yanıtlar:


16

Toplayıcı Süreci, Visual Studio 2015'te hata ayıklama modunda çalışan kodun enstrümantasyonu / tanılamasıyla ilişkili gibi görünüyor. Microsoft, bu işlemin sınırsız bellek kullanımıyla ilgili bir sorun olduğunu kabul etti ve "Temel nedeni araştırdık ve VS2015 Güncelleme 1'de sağlanacak bir düzeltme yaptı "

Bu yüzden en son Visual Studio 2015 güncellemesini aldığınızdan emin olun. Bu arada hafifletme için:

"Bu arada, işlemin çok fazla bellek harcadığını fark ederseniz, kurtarmanın iki yolu vardır. En basit olanı sadece makinenizi yeniden başlatmaktır. Bu her şeyi yeni bir duruma döndürecektir. Bellek tüketimini hafifletmek için yapabileceğiniz diğer şey Visual Studio Standart Toplayıcı Hizmeti'ni Service Manager kullanıcı arabirimini kullanarak durdurmak için. Hizmetin adı "VSStandardCollectorService140". Visual Studio ile hata ayıklamadığınızda güvenli bir şekilde durdurulabilir. ), hata ayıklama hedefi işlemine devam ettikten sonra Tanılama Araçları penceresinde bir hata iletisi görüntülenir. "

Yukarıdaki alıntıların kaynaklandığı bu bağlantıya bakın: https://connect.microsoft.com/VisualStudio/feedback/details/1630071/visual-studio-standard-collector-unbounded-memory-usage

Bu bağlantı ayrıca bir konsol uygulamasından bunu yaşayan birinin kod örneğine sahiptir. Sisteminizde sorunu tetikleyip tetiklemediğini görmek için bu örnek kodu çalıştırmaya değer olabilir. Sorunu bildiren kişi de ara sıra gerçekleştiğini belirtti, ancak kodu Visual Studio hata ayıklama modunda çalıştırmak ortak bir iş parçacığı gibi görünüyordu.

Muhtemelen Microsoft sorunun bazı temel nedenlerini düzeltti, ancak şimdi ortaya çıkan başka sabit olmayan nedenler de var.


1
Hizmetler GUI'sini açmanın basit bir yolu (Windows 7 / Windows 10) Başlat / Çalıştır yapmak ve "services.msc" yazmak ve Enter tuşuna basmaktır. Windows 7 makinemdeki hizmetler listesinde, bahsettiğim adı düşündüğüm ad "Visual Studio Standart Toplayıcı Hizmeti" olarak görünüyor.
Developer63

İlginç, Güncelleme 1 yüklü olmasına rağmen -> bu yüzden neden c # interaktif pencere kullanıyorum (sadece Güncelleme 1'de mevcuttur). İlginç olan, bağlantınızdaki adamın yeniden oluşturduğu örnek kodun Görevleri kullanmasıdır. Uygulamam görevler ve zaman uyumsuz kodları da adil kullanıyor.
C. Tewalt

@matrixugly, sorunu anladığım gibi, Toplayıcı Hizmeti temelde VS2015 çalışırken her zaman çalışıyor ve uygulama enstrümantasyonu / tanılama bilgileri topluyor. Bu nedenle, Windows'un düşük bellek uyarısı verdiği sırada yaptığınız şey, sorunla ilgili olabilir veya olmayabilir. Toplayıcı Hizmeti sürecinin eski enstrümantasyon verilerini temizlemeye başlaması, yavaş yavaş belleği doldurması gerektiği ve mesajın ilgisiz bir etkinlik sırasında saatler sonra ortaya çıktığı çok daha erken bir şey olabilirdi.
Developer63

7
Güncelleme 3 RC'de hala var. :(
SayusiAndo

1
Bu VS2017 için hala bir sorun mu var? Varsa, bu hizmeti devre dışı bırakmanın sonuçları nelerdir?
yuvarlanıyor

2

Hizmeti devre dışı bırakın ve hafızanızı tekrar yemez.

Araçlar-> Seçenekler-> Hata ayıklama-> Genel, "Hata ayıklama sırasında Tanılama Araçlarını Etkinleştir" seçeneğini devre dışı bırakın.


2
Ayrıca, birçok insanın kullandığı hata ayıklama paketinin parçası olan tanı araçlarına sahip olmayacağınızı da belirtmelisiniz.
rulo

1
Şahsen, bir geliştirici olarak, teşhis araçlarını her zaman devre dışı bıraktım çünkü makinemi ilk gördüğümden beri çok daha yavaş yaptığını hissettim ve sadece teşhis etmem gereken bir performans problemim olduğunda etkinleştirdim (ki bu oldukça nadir) ve yine de bir profil oluşturma oturumu genellikle bana daha fazla bilgi verir. İnsanların düzenli olarak ne için kullanacaklarını merak ediyorum.
Eduardo Wada
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.