2008-12-10 29 views
7

Dường như thường được nói rằng Trình quản lý tác vụ không cung cấp chỉ báo chính xác về quá trình sử dụng bộ nhớ.Tôi làm cách nào để xác định dung lượng bộ nhớ mà chương trình .NET của tôi đang sử dụng?

Nếu đây thực sự là trường hợp, cách dễ nhất để tìm những thứ này là gì?

Tôi muốn biết:

  • Tổng Memory in use (cho dù trong RAM hoặc paged hoặc bất cứ điều gì)
  • Tổng số RAM được sử dụng (chạy trong một tình huống mà máy có vô số miễn phí vật lý RAM vì vậy mọi thứ bị buộc phải trang ra hy vọng không phải là vấn đề)
  • Tổng bộ nhớ thực sự được chương trình sử dụng (không tính thêm chi phí GC giữ xung quanh)
  • Tổng dung lượng bộ nhớ chỉ được chương trình của tôi sử dụng (không phải đếm thư viện chia sẻ/bộ nhớ dùng chung)
  • Tổng mức sử dụng bộ nhớ dùng chung.

Trả lời

8

Lấy Process Explorer, nhấp chuột phải -> Thuộc tính quy trình trong danh sách, sau đó nhấp vào tab ".NET". Chọn "Bộ nhớ CLR .NET" từ hộp tổ hợp và bạn sẽ có nhiều thông tin trực tiếp hơn về quy trình của mình hơn là bạn sẽ biết phải làm gì với;)

+0

Thông tin đó đến từ Bộ đếm hiệu suất. Bạn cũng có thể xem các bộ đếm hiệu suất với perfmon. –

+0

Đúng - nhưng tôi thấy Process Explorer là một công cụ tiện lợi hơn, ngay cả khi nó * là * một cài đặt bổ sung:} – moobaa

1

Có một số điều bạn có thể làm nhưng tôi tin rằng điều tốt nhất trên mạng, nếu bạn nghiêm túc về profiling ứng dụng của bạn, là sử dụng Kiến Profiler bởi Red Gate:

http://www.red-gate.com/Products/ants_profiler/index.htm

Phần mềm này thực sự toàn diện và sẽ cung cấp một bức tranh tốt về cách sử dụng bộ nhớ và các loại số liệu khác mà ứng dụng của bạn trình bày.

1

Bắt đầu theo dõi hiệu suất (perfmon.exe) và xem đối tượng hiệu năng bộ nhớ .Net CLR. Mỗi chương trình .net chạy đều có cá thể riêng. Bạn sẽ có thể tìm thấy những gì bạn muốn ở đó.

0

Process Explorer sẽ hiển thị cho bạn một số điều này nếu bạn nhấp đúp vào một quy trình.

0

Có một số tính năng tuyệt vời trong Trình biên dịch ProcessExplorer SysInternals bao gồm tệp lược tả .NET, mặc dù ANTS là cách để đi nếu bạn cần một công cụ chuyên nghiệp.

0

Tôi cũng sử dụng memprofiler và nó giúp chúng tôi rất nhiều.

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