调查内存泄漏-承诺内存增长-堆很好

汤玛士

我正在调查C#/ WPF / .NET 4.51应用程序中可能的内存泄漏。

启动后以及分配的内存超过顶部数小时后,我直接为应用程序制作了快照。

我使用VisualStudio的进程转储工具检查了托管堆实例。一切看起来都很好。

在WinDbg中打开转储似乎可以确认这一点,因为堆和堆栈以我期望的方式增长(+ 50MB)(左:第一个转储,右:最后一个转储): WinDbg堆/堆栈

让我烦恼的是,提交的页面的大小增长了很多(左:第一个转储,右:最后一个转储): WinDbg状态摘要

同样,VMMap将这个巨大的提交块显示为“私有数据”(与上面的转储无关。屏幕截图大约在一小时后拍摄): VMMap映像

请纠正我:
由于堆很好并且使用VirtualAlloc()直接分配了专用字节,因此我可以从可能的泄漏候选列表中排除“我们的”托管应用程序代码。

有没有办法缩小泄漏的原因?

汤玛士

感谢Alex K.推荐使用DebugDiag,它对屏幕截图非常有帮助:

DebugDiag输出

我们使用WPF的WebBrowser(通过使用ActiveX控件实现)来显示运行大量Java脚本代码的网页。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章