无法在.NET中检测非托管内存分配

Cap*_*mic 5 .net c# profiler memory-management new-operator

我想确定我的应用程序的巨大内存消耗的来源.我的应用程序正在占用大量虚拟内存(任务管理器中的VM列或VMMap中的专用字节)

我的应用程序是.net服务,但它使用C#包装器围绕C++对象.

我尝试过Red Gate Ants Memory分析器,但它只计算托管对象,并且不计算由非托管C++ new运算符分配的内存(它只是调用Virtual Alloc).

托管内存分析器的另一个问题是不允许跟踪调用图 - 请参见下图.

在此输入图像描述

在此输入图像描述

小智 3

您可以使用DebugDiag。它将跟踪 C# 和 C++ 对象。