Tôi đang cố gắng giới hạn theo chương trình mức tiêu thụ bộ nhớ của các trình cắm đang chạy trong .Net AppDomain, nhưng tôi không thể tìm thấy bất kỳ thông số cài đặt nào cho điều này hoặc tôi có thể tìm cách truy vấn AppDomain để tìm ra dung lượng bộ nhớ đang tiêu thụ. Ý tưởng nào?Làm thế nào tôi có thể tìm ra dung lượng bộ nhớ .Net Appdomain đang sử dụng?
Trả lời
Đây là tài liệu để truy vấn việc sử dụng bộ nhớ của quá trình. Không giống với AppDomain, nhưng nó có thể là một nơi để bắt đầu.
http://msdn.microsoft.com/en-us/library/s80a75e5(VS.80).aspx
Bạn có thể hỏi GC những gì nó nghĩ hiện cũng được phân bổ.
http://msdn.microsoft.com/en-us/library/system.gc.gettotalmemory(VS.71).aspx
Không chắc chắn theo chương trình, nhưng Process Explorer có thể cho bạn biết số lượng bộ nhớ mà. AppDomain đang sử dụng. Có lẽ họ có một số tài liệu ra có về cách họ đang truy vấn thông tin đó.
Sử dụng interop mscoree.CorRuntimeHostClass từ C: \ WINDOWS \ Microsoft.NET \ Framework \ vXXXXXX \ mscoree.tlb
Cũ câu hỏi, nhưng trong khi chờ đợi (kể từ .Net framework 4.0) một giải pháp mới có sẵn. Bạn sẽ phải kích hoạt ARM (Giám sát tài nguyên miền ứng dụng). Từ thời điểm đó, bạn có thể yêu cầu thông tin về tổng thời gian xử lý được tiêu thụ, sử dụng bộ nhớ, v.v.