我有一个通过 MSMQ 运行的 WCF 服务。内存随着时间的推移逐渐增加,表明存在某种内存泄漏。我在本地运行该服务并使用 PerfMon 监视一些计数器。 CLR 内存托管堆字节总数保持相对恒定,而进程的私有字节随着时间的推移而增加。这让我相信存在某种非托管内存泄漏。假设问题是非托管内存泄漏,我该如何解决该问题?是否有任何工具可以用来提示我导致非托管内存泄漏的原因?此外,我的所有服务所做的就是从事务队列中读取数据并写入数据库,所有这些都是 DTC 事务的一部分(通过要求服务合约上的事务在幕后处理)。我没有使用 COM 或 DllImports 明确执行任何操作。
提前致谢!
可以使用Windbg来分析进程Heap。有一些文章和备忘单展示了如何做到这一点,例如使用 Windbg 检测内存泄漏 http://www.codeproject.com/KB/cpp/MemoryLeak.aspx
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)