Việc sử dụng bộ nhớ có phần phức tạp hơn hiển thị một hoặc hai số. Tôi đề nghị bạn hãy xem Mark Russinovich's excellent post trên các loại bộ đếm khác nhau trong Windows.
.NET chỉ phức tạp hơn nữa. Một tiến trình .NET chỉ là một tiến trình Windows khác, vì vậy rõ ràng nó sẽ có tất cả các chỉ số thông thường, nhưng ngoài ra CLR hoạt động như một trình quản lý bộ nhớ cho ứng dụng được quản lý. Vì vậy, tùy thuộc vào quan điểm những con số này sẽ thay đổi.
CLR phân bổ và giải phóng bộ nhớ ảo một cách hiệu quả trong các khối lớn thay mặt cho ứng dụng .NET và sau đó đưa ra các bit bộ nhớ cho ứng dụng khi cần thiết. Vì vậy, trong khi ứng dụng của bạn có thể sử dụng rất ít bộ nhớ tại một thời điểm nhất định thì bộ nhớ này có thể có hoặc không được tiết lộ cho hệ điều hành.
Trên hết, bản thân CLR sử dụng bộ nhớ để tải IL, biên dịch IL thành mã gốc, lưu trữ tất cả thông tin loại và vv. Tất cả điều này thêm vào bộ nhớ của quá trình.
Nếu bạn muốn biết dung lượng bộ nhớ mà ứng dụng được quản lý của bạn sử dụng cho dữ liệu, thì Byte trong tất cả bộ đếm heap đều hữu ích. Các byte riêng có thể được sử dụng như là một ước tính hơi thô cho việc sử dụng bộ nhớ của ứng dụng ở cấp độ quy trình.
Bạn cũng có thể muốn kiểm tra các câu hỏi liên quan:
Reducing memory usage of .NET applications?
How to detect where a Memory Leak is?
Nguồn
2010-09-27 11:03:21
Hãy nhớ rằng trình hồ sơ chỉ có sẵn trong các phiên bản đắt tiền hơn của VS. –
yes @Brian Rasmussen là đúng. Tôi nghĩ chỉ VS Ultimate hỗ trợ Profiler. –
Bạn cần VS 2010 phí bảo hiểm hoặc cao hơn (đó là lẻ, win7 prof >> home prem trong khi vs2010 prem >> vs2010 prof) – atamanroman