如何确定非托管代码使用的内存量

时间:2020-03-06 14:26:09  来源:igfitidea点击:

我正在使用大型COM库(ArcObjects),并且试图阻止内存泄漏。
确定非托管代码/对象使用的内存量的最可靠方法是什么。
可以使用哪些性能计数器?

解决方案

进程的"虚拟字节"计数器表示该进程已保留的内存总量。如果我们有内存泄漏,则这种趋势会上升。

使用UMDH获取内存堆的快照,运行两次,然后使用该工具显示两次快照之间发生的所有分配。这非常有助于查找可能泄漏的区域。

本文以简单的方式进行了解释。

我建议我们使用CComPtr <>包装对象,不要忘记在将其传递到返回原始指针引用的函数之前必须释放它(因为强制转换操作符将用于获取指针,然后该指针将被覆盖)