如何研究.NET中的非托管内存泄漏?

Bra*_*don 27 c# sql-server wcf memory-leaks msmq

我有一个在MSMQ上运行的WCF服务.内存随着时间的推移逐渐增加,表明存在某种内存泄漏.我在本地运行该服务并使用PerfMon监控一些计数器.总CLR内存管理堆字节保持相对恒定,而进程的私有字节随时间增加.这让我相信存在某种非托管内存泄漏.假设存在非托管内存泄漏问题,我该如何解决这个问题?是否有任何工具可以用来向我提供有关导致非托管内存泄漏的提示?此外,我所有的服务都是从事务队列读取并写入数据库,所有这些都是DTC事务的一部分(通过要求服务合同上的事务来处理).我没有明确地使用COM或DllImports做任何事情.

提前致谢!

Rem*_*anu 5

可以使用Windbg来分析进程Heap。有一些文章和备忘单展示了如何执行此操作,例如使用 Windbg 进行内存泄漏检测


Joh*_*hnC 0

Ants Profiler值得考虑。据我记得,您可以下载试用版。