Gặp sự cố với ứng dụng web của chúng tôi tại đây. (Asp.net 2.0 Win server 2008)Đối tượng không thu gom rác thải, nhưng không chứa gcroots
Việc sử dụng bộ nhớ của chúng tôi cho trang web, tăng trưởng và phát triển mặc dù tôi cho rằng nó vẫn ở mức khá tĩnh. (Chúng tôi có một lượng nhỏ dữ liệu được lưu trữ ở trạng thái).
Muốn tìm hiểu vấn đề là gì, tôi đã chạy System.GC.Collect(); một vài lần, lấy một bãi chứa bộ nhớ và sau đó nạp bộ nhớ này đổ vào WinDbg.
Khi tôi làm một DumpHeap -Stat tôi nhận được một số lượng lớn bất thường trên loại cụ thể treo xung quanh trong bộ nhớ.
0000064280580b40 713.471 79.908.752 PaymentOption
như vậy, làm một DumpHeap-MT cho loại hình này, tôi nhận được một chồng tài liệu tham khảo đối tượng. Chọn một số ngẫu nhiên trong số này, tôi thực hiện lệnh gcroot và lệnh quay lại báo cáo rằng không có tham chiếu nào được giữ cho nó.
Đối với tôi, đây chính xác là khi GC thu thập các mục này, nhưng vì một lý do nào đó chúng được để lại xuất sắc.
Ai có thể đưa ra giải thích về những gì có thể xảy ra không?
Tôi muốn được quan tâm xem bạn đã từng giải quyết vấn đề này chưa ... – womp
Thật không may là không. Chúng tôi đã giải quyết vấn đề này bằng cách tái chế quy trình khi nó đã sử dụng hơn nGB bộ nhớ để cho phép các quy trình khác. Tôi nghi ngờ đó là một vấn đề với phân mảnh và cấp phát bộ nhớ mới. Tôi sẽ sớm thực hiện một số điều tra, vì vậy tôi sẽ đăng một bản cập nhật. – Lachmania