Apa proses Kolektor Standar Visual Studio, dan mengapa menggunakan 10GB RAM?

21

Semoga ini adalah situs pertukaran stack yang tepat untuk memposting ... Tidak terasa seperti pertanyaan pemrograman untuk SO. Bagaimanapun, saya menjalankan Visual Studio 2015 dan mendapat pemberitahuan dari Windows untuk menutup VS2015 karena kehabisan memori. Saya memiliki 24GB RAM dan baru saja reboot kemarin, jadi saya pikir ada sesuatu yang jauh di sini. Saya kadang-kadang menggunakan jendela interaktif C #, dan jendela interaktif python 2.7, tetapi itu tidak digunakan pada saat pesan ini.

Catatan: Saat saya menulis ini, saya baru saja mendapat pesan "Unknown hard crash" dari devenv.exe (proses vs2015). Tetapi layanan Kolektor Standar masih berjalan menggunakan 10.7GB.

Adakah yang tahu apa itu Kolektor Standar? Dan apa yang menyebabkan penggunaan RAM melonjak?

Catatan: Sekali lagi saat saya menulis, saya baru melihat Layanan Kolektor Standar berhenti di task manager saya dan saya memiliki semua RAM saya kembali.

Penggunaan RAM besar oleh proses Visual Studio "Standard Collector"

Pembaruan: Sepertinya ini adalah bug yang coba diperbaiki oleh tim VS di pembaruan 1. Saya pasti sudah menginstal 1 pembaruan, tetapi mungkin saya harus mencoba mereproduksi dalam beberapa kode sampel dan mengirimkannya ke tim VS. Contoh devenv yang mogok juga saat ini tidak sedang debugging. (Meskipun, ada contoh lain di mana debugging seperti yang Anda lihat oleh ekstensi .vshost.exe di task manager)

Contoh devenv itu tidak crash dan itu sebenarnya masih berjalan di debugger sekarang tanpa masalah.

masukkan deskripsi gambar di sini

C. Tewalt
sumber
Ini berkaitan dengan Alat Diagnostik. . Anda sadar bahwa Chrome ada sebagai proses 64-bit, bukan?
Ramhound
1
ini adalah bug yang dikenal dan memiliki perbaikan dengan pembaruan periksa di sini untuk info: connect.microsoft.com/VisualStudio/feedback/details/1630071/…
arana
@arana, saya menjalankan pembaruan 1, yang "harus" diperbaiki ...
C. Tewalt
1
@Ramhound Chrome tidak benar-benar relevan dengan pertanyaan ini. Atau apakah Anda hanya berbagi informasi yang berguna?
C. Tewalt

Jawaban:

16

Proses Kolektor tampaknya terkait dengan instrumentasi / diagnostik kode yang berjalan dalam mode debug, di Visual Studio 2015. Microsoft telah mengakui ada masalah dengan penggunaan memori tidak terbatas dari proses ini, dan mengatakan, "Kami telah meneliti penyebab utama dan memiliki membuat perbaikan yang akan disediakan di Pembaruan VS2015 1 "

Jadi pastikan Anda mendapatkan pembaruan Visual Studio 2015 terbaru. Sementara itu untuk mitigasi:

"Sementara itu, jika Anda perhatikan bahwa proses itu menghabiskan terlalu banyak memori, Anda memiliki dua cara untuk memulihkan. Paling sederhana adalah dengan me-restart mesin Anda. Itu akan membuat semuanya kembali ke keadaan segar. Hal lain yang dapat Anda lakukan untuk mengurangi konsumsi memori adalah untuk menghentikan Layanan Kolektor Standar Visual Studio menggunakan UI Manajer Layanan. Nama layanan ini adalah "VSStandardCollectorService140". Hal ini dapat dihentikan dengan aman saat Anda tidak melakukan debug dengan Visual Studio. Jika Anda menghentikan layanan saat debugging (bahkan berhenti di sebuah breakpoint) ) maka jendela Alat Diagnostik akan menampilkan pesan kesalahan setelah Anda melanjutkan proses target debug. "

Lihatlah tautan ini, di mana kutipan di atas bersumber dari: https://connect.microsoft.com/VisualStudio/feedback/details/1630071/visual-studio-standard-collector-unbounded-memory-usage

Tautan ini juga memiliki contoh kode seseorang yang mengalami ini dari aplikasi konsol. Sebaiknya jalankan kode sampel untuk melihat apakah itu memicu masalah pada sistem Anda. Orang yang melaporkan masalah ini juga mengindikasikan hal itu terjadi sebentar-sebentar, tetapi menjalankan kode dalam mode debugging Visual Studio tampaknya menjadi satu benang merah yang umum.

Mungkin Microsoft memperbaiki beberapa penyebab utama masalah ini, tetapi masih ada penyebab tidak tetap lainnya yang sekarang muncul.

Pengembang63 - GoFund Monica
sumber
1
Salah satu cara sederhana (Windows 7 / Windows 10) untuk memunculkan GUI Layanan adalah dengan melakukan Start / Run dan ketik "services.msc" dan tekan Enter. Dalam daftar layanan pada mesin Windows 7 saya, nama yang saya yakini sebagai yang disebutkan menunjukkan sebagai "Layanan Kolektor Standar Visual Studio".
Pengembang63 - GoFund Monica
Menarik, walaupun saya telah menginstal Pembaruan 1 -> karenanya mengapa saya menggunakan jendela c # interactive (hanya tersedia di Pembaruan 1). Menarik bahwa kode contoh dari tautan Anda yang direproduksi lelaki itu menggunakan Tugas. Aplikasi saya memanfaatkan tugas dan kode async dengan adil.
C. Tewalt
@matrixugly, ketika saya memahami masalahnya, Layanan Kolektor pada dasarnya berjalan sepanjang waktu ketika VS2015 berjalan, mengumpulkan informasi instrumentasi aplikasi / diagnostik. Jadi apa yang Anda lakukan pada saat Windows memberikan peringatan memori rendah mungkin atau mungkin tidak ada hubungannya dengan masalah ini. Itu bisa menjadi sesuatu yang jauh lebih awal, di mana proses Layanan Kolektor gagal untuk mengenali itu perlu mulai membersihkan data instrumentasi lama, secara bertahap mengisi memori, dan pesan itu muncul berjam-jam kemudian selama aktivitas yang tidak terkait.
Pengembang63 - GoFund Monica
7
Masih ada di Pembaruan 3 RC. :(
SayusiAndo
1
Apakah ini masih menjadi masalah untuk VS2017? Jika demikian, apa konsekuensi dari menonaktifkan layanan ini?
menggulung
2

Nonaktifkan layanan dan itu tidak akan memakan memori Anda lagi.

Alat-> Opsi-> Debugging-> Umum, nonaktifkan "Aktifkan Alat Diagnostik saat debugging".

Sumit Joshi
sumber
2
Anda juga harus menyebutkan bahwa Anda tidak akan memiliki alat diagnostik yang merupakan bagian dari paket debugging yang banyak digunakan orang.
bergulung
1
Secara pribadi, sebagai pengembang, saya selalu menonaktifkan alat diagnostik karena saya merasa itu membuat mesin saya jauh lebih lambat sejak pertama kali saya melihatnya, dan hanya mengaktifkannya ketika saya benar-benar memiliki masalah kinerja yang perlu saya diagnosa (yang cukup jarang), dan masih, sesi pembuatan profil biasanya memberi saya lebih banyak informasi. Saya cukup ingin tahu untuk apa orang akan menggunakannya secara teratur.
Eduardo Wada