c# - 无法检测 .NET 中的非托管内存分配

标签 c# .net memory-management new-operator profiler

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

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

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

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

enter image description here

enter image description here

最佳答案

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

关于c# - 无法检测 .NET 中的非托管内存分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6912109/

相关文章:

c# - 我的 C# 类中的相对路径如何与 NUnit 3.x 一起使用?

c# - X-FACEBOOK-PLATFORM 未经授权

c# - 通用列表/子列表处理

c# - 限制类和类属性

c# - 为什么我不能访问静态类中的公共(public)属性字段

javascript - Angular 的 $compile 内存泄漏?

c# - 将箭头形状连接到字符串

c# - MassTransit 事务性发布

iphone - iOS 单例和内存管理

c++ - 类内动态内存分配