Tôi thấy một số mẫu thu thập rác bất thường dưới .net 4.0 mà tôi không thể giải thích, mọi lời khuyên sẽ được đánh giá cao.Các mẫu sưu tập rác bất thường
Tại các thời điểm khác nhau trong việc chạy chương trình của tôi, số lượng bộ sưu tập G2 bắt đầu tăng và thời gian GC% tăng lên gần 100%. Điều này tiếp tục trong một thời gian trước khi dừng (vui lòng xem màn hình Performance Monitor lấy bên dưới). Trong thời gian này, một dấu vết PerfView của các sự kiện GC ETW CLR cho thấy rằng một số bộ sưu tập G2 đang chạy dài đang được kích hoạt ngược trở lại với lý do 'AllocSmall'.
bất cứ ai có thể làm sáng tỏ về:
- Preciesly những gì gây ra một 'AllocSmall' sự kiện
- Tại sao chúng được kích hoạt trực tiếp thu G2
- Tại sao những bộ sưu tập G2 đang xảy ra trở lại trở lại
LowMemory có vẻ không phải là vấn đề khi sự kiện bắt đầu GC không thực hiện điều này làm mã lý do của chúng (http://msdn.microsoft.com/en-us/library/ff356162.aspx). Chúng tôi cũng đã thấy các tình huống tương tự trong đó các bộ sưu tập G0 xuất hiện trở lại.
Chỉnh sửa: Người ta cho rằng trình kích hoạt có thể vượt quá ngưỡng. Do vẫn còn bộ nhớ có sẵn, tôi hy vọng rằng heap G2 sẽ mở rộng vào thời điểm này thay vì có GC thrash cố gắng thu thập.
Chỉnh sửa: Hình ảnh được đăng bên dưới có độ phân giải cao hơn nhiều so với hiển thị StackOverflow - chỉ cần mở liên kết hình ảnh trực tiếp trong tab trình duyệt.
Cảm ơn bạn đã trả lời. Trong những trường hợp này, tôi hy vọng rằng heap G2 sẽ được mở rộng vì vẫn còn bộ nhớ. Bất cứ ai có thể bình luận về lý do tại sao điều này đã không xảy ra? –