c# - Silverlight 内存泄漏

标签 c# silverlight red-gate-ants

我们有一个相当大的 silverlight 4 应用程序。我们正在寻找应用程序中的内存泄漏,这已成为一项艰巨的任务。

对于那些看过原帖的人来说,这一篇完全改变了!

我意识到 ANTS 内存分析器没有向我显示正确的内容。那是因为内存泄漏不在托管代码中,而是在 native 代码中。我确实修复了 ANTS 的一些问题 - 它是解决托管代码内存泄漏的好工具。

所以我找到了这个博客,

http://blogs.msdn.com/b/slperf/archive/2010/08/19/analyzing-silverlight-memory-usage-part-1-obtaining-measurements.aspx

非常棒。我使用 xPerf 和 xPerfViewer 查看 native 堆并查看我怀疑的实际内存泄漏。

所以我可以看到如下所示的堆栈跟踪,

CCoreServices::Draw
    CCoreServices::Tick
    CUElement::Render
        CUIElement::Render
        CUIElement::RenderWithTransform
        CUIElement::RenderVisual
        CUIElement::RenderChildren
            {Repeat of the above in a recursive fashion}

所以在这个“Render”方法中,它在某个地方分配了大约 520 字节的内存,据我所知,它并没有释放它。

我还可以看到一个名为

的方法或类
SDBitmapCreate

也在泄漏内存。

很有趣,因为我好像找到了什么,但我不太确定是什么。

还有什么建议吗?

谢谢。

最佳答案

这里有一个很好的解决 Silverlight 内存泄漏问题的教程:http://davybrion.com/blog/2009/08/finding-memory-leaks-in-silverlight-with-windbg/ .它很复杂,而且您必须处理 WinDBG 命令,但我发现它在过去很有用。当然,这并不能具体回答您的问题,但它可能会为您指明正确的方向。

关于c# - Silverlight 内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4403641/

相关文章:

.net - CommandManager “cannot resolve symbol”

memory-leaks - 我有很多未使用的内存分配给 .net

c# - SimpleMembership Provider 不分配 ID

c# - 在 Azure Function 中处置 NLog

c# - 如何将文本框中输入的字符串作为 vs c# 中 pdf 文件的名称?

silverlight - Silverlight 中的 CallMethodAction 不起作用

javascript - 如何在 silverlight 中全屏模式下点击视频?

c# - 为什么 C# 不支持变体泛型类?

red-gate-ants - Ants 配置文件显示 CPU 使用率为 150%

.net - ANTS Memory Profiler - 我应该查看哪个内存?