2008-09-09 38 views
8

Tôi đang cố gắng tìm một cách để xác định thời gian chạy bao nhiêu bộ nhớ mà một lớp đã cho đang sử dụng trong .NET. Việc sử dụng Marshal.SizeOf() đã hết, vì nó chỉ hoạt động trên các loại giá trị. Có cách nào để kiểm tra chính xác bao nhiêu bộ nhớ một lớp sử dụng?Xác định lượng bộ nhớ mà một lớp sử dụng?

Trả lời

5

Gần đây tôi mới bắt đầu xem xét loại điều này, nhưng tôi đã thấy rằng các trình thu thập bộ nhớ có thể cung cấp thông tin khá chi tiết về các cá thể của các đối tượng trong ứng dụng của bạn.

Dưới đây là một cặp vợ chồng mà là giá trị cố gắng:

1

Tôi đồng ý rằng một hồ sơ bộ nhớ là cách dễ nhất để có được những thông tin mà bạn đang tìm kiếm. Ngoài hai thiết bị được đề cập trước đây, tôi khuyên bạn nên sử dụng JetBrains dotTrace, đây là cả trình biên dịch hiệu suất và trình thu thập bộ nhớ.

Nếu bạn muốn tự mình làm điều đó và sẵn sàng thâm nhập sâu vào CLR, bạn có thể sử dụng .NET Profiling API, một API không được quản lý (như Microsoft nói): "cho phép trình theo dõi hồ sơ một chương trình được thực hiện bởi thời gian chạy ngôn ngữ chung (CLR). " Nó không chính xác dùng cho mục đích sử dụng bình thường, nhưng nó có một lượng lớn chức năng.

Các vấn đề liên quan