2011-08-02 29 views
5

Tôi muốn xác định nguồn tiêu thụ bộ nhớ khổng lồ của ứng dụng của tôi. Ứng dụng của tôi đang ăn nhiều bộ nhớ ảo (cột VM trong trình quản lý tác vụ hoặc các byte riêng trong VMMap)Không thể phát hiện phân bổ bộ nhớ không được quản lý trong .NET

Ứng dụng của tôi là dịch vụ .net nhưng nó sử dụng các trình bao bọc C# quanh các đối tượng C++.

Tôi đã thử trình biên tập bộ nhớ kiến ​​Red Gate Ants nhưng nó chỉ đếm các đối tượng được quản lý và không tính bộ nhớ được cấp phát bởi toán tử mới C++ không được quản lý (chỉ đơn giản gọi Virtual Alloc).

Một vấn đề khác với trình quản lý bộ nhớ được quản lý là không cho phép theo dõi biểu đồ cuộc gọi - xem hình bên dưới.

enter image description here

enter image description here

+0

bạn đang sử dụng cài đặt nào trong trình thu thập bộ nhớ RedGate? với điều mà tôi đã tìm thấy trước đây ngay cả khi rò rỉ bộ nhớ trong thư viện của bên thứ ba đang sử dụng phân bổ không được quản lý ... – Yahia

+1

Tại sao không sử dụng trình biên dịch gốc cho các bit không được quản lý? – leppie

+0

leppie, bạn có thể giới thiệu một cái không? –

Trả lời

3

Bạn có thể sử dụng DebugDiag. Nó sẽ theo dõi các đối tượng C# và C++.

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