Quá trình thu thập tiêu chuẩn Visual Studio là gì và tại sao nó sử dụng 10GB RAM?


21

Hy vọng rằng đây là trang web trao đổi ngăn xếp phù hợp để đăng lên ... Không cảm thấy đó là một câu hỏi lập trình cho SO. Dù sao, tôi đang chạy Visual Studio 2015 và nhận được thông báo từ Windows để đóng VS2015 vì nó sắp hết bộ nhớ. Tôi có 24GB RAM và mới khởi động lại vào ngày hôm qua, vì vậy tôi nghĩ có gì đó không ổn ở đây. Đôi khi tôi sử dụng cửa sổ tương tác C # và cửa sổ tương tác python 2.7, nhưng chúng không được sử dụng tại thời điểm của thông báo này.

Lưu ý: Khi tôi viết bài này, tôi vừa nhận được thông báo "Lỗi cứng không xác định" từ devenv.exe (quy trình vs2015). Nhưng dịch vụ Standard Collector vẫn đang chạy với dung lượng tối đa 10,7GB.

Có ai biết Standard Collector là gì không? Và điều gì có thể khiến việc sử dụng RAM tăng đột biến?

Lưu ý: Một lần nữa khi tôi đang viết, tôi chỉ nhận thấy Dịch vụ thu thập tiêu chuẩn đã dừng trong trình quản lý tác vụ của mình và tôi đã lấy lại toàn bộ RAM.

Sử dụng RAM lớn bởi quy trình "Bộ sưu tập tiêu chuẩn" của Visual Studio

Cập nhật: Có vẻ như đây có thể là một lỗi mà nhóm VS đã cố gắng khắc phục trong bản cập nhật 1. Tôi chắc chắn đã cài đặt bản cập nhật 1, nhưng có lẽ tôi nên thử sao chép trong một số mã mẫu và gửi cho nhóm VS. Ví dụ devenv bị lỗi cũng không được gỡ lỗi. (Mặc dù, có một trường hợp khác là nó đang gỡ lỗi như bạn có thể thấy bằng phần mở rộng .vshost.exe trong trình quản lý tác vụ)

Ví dụ devenv đó đã không gặp sự cố và nó thực sự vẫn đang chạy trong trình gỡ lỗi mà không gặp vấn đề gì.

nhập mô tả hình ảnh ở đây


Nó liên quan đến các công cụ chẩn đoán. . Bạn biết rằng Chrome tồn tại dưới dạng quy trình 64 bit phải không?
Ramhound

1
Đây là một lỗi đã biết và nó đã được sửa với bản kiểm tra cập nhật tại đây để biết thông tin: connect.microsoft.com/VisualStudio/feedback/details/1630071/iêu
arana

@arana, tôi đang chạy bản cập nhật 1, "nên" có cách khắc phục ...
C. Tewalt

1
@Ramhound Chrome không thực sự liên quan đến câu hỏi này. Hay bạn chỉ vui lòng chia sẻ một mẩu thông tin hữu ích?
C. Tewalt

Câu trả lời:


16

Quá trình Collector dường như liên quan đến thiết bị / chẩn đoán mã đang chạy trong chế độ gỡ lỗi, trong Visual Studio 2015. Microsoft đã thừa nhận có vấn đề với việc sử dụng bộ nhớ không giới hạn của quy trình này và nói: "Chúng tôi đã nghiên cứu nguyên nhân gốc và đã đã sửa lỗi sẽ được cung cấp trong Bản cập nhật 1 của VS2015 "

Vì vậy, hãy chắc chắn rằng bạn nhận được bản cập nhật Visual Studio 2015 mới nhất. Để giảm thiểu trong thời gian đó:

"Trong khi đó, nếu bạn nhận thấy rằng quá trình tiêu thụ quá nhiều bộ nhớ, bạn có hai cách để phục hồi. Đơn giản nhất là khởi động lại máy của bạn. Điều đó sẽ đưa mọi thứ trở lại trạng thái mới. Điều khác bạn có thể làm để giảm bớt mức tiêu thụ bộ nhớ là để dừng Dịch vụ thu thập tiêu chuẩn Visual Studio bằng giao diện người dùng Trình quản lý dịch vụ. Tên của dịch vụ là "VSSt ChuẩnCollectorService140". Nó có thể được dừng an toàn khi bạn không gỡ lỗi với Visual Studio. Nếu bạn dừng dịch vụ trong khi gỡ lỗi (thậm chí dừng tại điểm dừng ) sau đó cửa sổ Công cụ chẩn đoán sẽ hiển thị thông báo lỗi sau khi bạn tiếp tục quá trình đích gỡ lỗi. "

Nhìn vào liên kết này, nơi các trích dẫn ở trên có nguồn gốc từ: https://connect.microsoft.com/VisualStudio/feedback/details/1630071/visual-studio-stiteria-collector-unbounded-memory-usage

Liên kết này cũng có một ví dụ mã của một người đã trải nghiệm điều này từ một ứng dụng giao diện điều khiển. Có thể đáng để chạy mã mẫu đó để xem liệu nó có gây ra sự cố trên hệ thống của bạn không. Người báo cáo vấn đề cũng chỉ ra rằng nó xảy ra không liên tục, nhưng việc chạy mã trong chế độ gỡ lỗi của Visual Studio dường như là một chủ đề chung.

Có thể Microsoft đã khắc phục một số nguyên nhân gốc rễ của vấn đề, nhưng vẫn còn những nguyên nhân chưa được trộn khác hiện đang nổi lên.


1
Một cách đơn giản (Windows 7 / Windows 10) để hiển thị GUI Dịch vụ là thực hiện Bắt đầu / Chạy và nhập "services.msc" và nhấn Enter. Trong danh sách các dịch vụ trên máy Windows 7 của tôi, cái tên mà tôi tin là tên được đề cập là "Dịch vụ thu thập tiêu chuẩn Visual Studio".
Developer63 - GoFund Monica

Thật thú vị, mặc dù tôi đã cài đặt Bản cập nhật 1 -> vì vậy tại sao tôi sử dụng cửa sổ tương tác c # (chỉ có sẵn trong Bản cập nhật 1). Điều thú vị là mã ví dụ từ liên kết của bạn mà anh chàng sao chép sử dụng Nhiệm vụ. Ứng dụng của tôi sử dụng hợp lý các tác vụ và mã async.
C. Tewalt

@matrixugly, theo tôi hiểu vấn đề, Dịch vụ Collector về cơ bản luôn chạy mọi lúc khi VS2015 đang chạy, thu thập thông tin chẩn đoán / thiết bị ứng dụng. Vì vậy, những gì bạn đang làm vào thời điểm Windows đưa ra cảnh báo bộ nhớ thấp có thể có hoặc không liên quan đến vấn đề này. Nó có thể là một cái gì đó sớm hơn nhiều, trong đó quá trình Collector Service không nhận ra cần phải bắt đầu xóa dữ liệu thiết bị cũ, dần dần lấp đầy bộ nhớ và thông báo xuất hiện hàng giờ sau đó trong một hoạt động không liên quan.
Nhà phát triển63 - GoFund Monica

7
Vẫn tồn tại trong Bản cập nhật 3 RC. :(
SayusiAndo

1
Đây có phải vẫn là một vấn đề cho VS2017? Nếu vậy hậu quả của việc vô hiệu hóa dịch vụ này là gì?
cuộn

2

Vô hiệu hóa dịch vụ và nó sẽ không ăn bộ nhớ của bạn một lần nữa.

Công cụ-> Tùy chọn-> Gỡ lỗi-> Chung, tắt "Bật công cụ chẩn đoán trong khi gỡ lỗi".


2
Bạn cũng nên đề cập rằng bạn sẽ không có các công cụ chẩn đoán là một phần của bộ gỡ lỗi mà nhiều người sử dụng.
cuộn

1
Cá nhân, là một nhà phát triển, tôi luôn vô hiệu hóa các công cụ chẩn đoán vì tôi cảm thấy nó làm cho máy của tôi chậm hơn rất nhiều kể từ lần đầu tiên tôi nhìn thấy nó và chỉ kích hoạt nó khi tôi thực sự gặp vấn đề về hiệu năng mà tôi cần chẩn đoán (khá là hiếm), và vẫn còn, một phiên hồ sơ thường cung cấp cho tôi nhiều thông tin hơn. Tôi khá tò mò muốn biết mọi người sẽ sử dụng nó vào việc gì một cách thường xuyên.
Eduardo Wada
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.