gpt4 book ai didi

c# - C# WPF 中的内存泄漏

转载 作者:IT王子 更新时间:2023-10-29 04:16:20 25 4
gpt4 key购买 nike

我可以使用一些建议来追踪 C# 中内存泄漏的原因。我了解什么是内存泄漏,我明白为什么它们会在 C# 中发生,但我想知道您过去使用了哪些工具/策略来解决它们?

我正在使用 .NET Memory Profiler,我发现我的一个巨大的主要对象在我关闭它管理的窗口后仍保留在内存中,但我不确定如何关闭所有指向它的链接。

如果我不够清楚,只需发布​​一个问题的答案,我会编辑我的问题作为回应。谢谢!

最佳答案

进入调试器,然后在立即窗口中输入:

.load C:\Windows\Microsoft.NET\Framework\v2.0.50727\sos.dll

sos.dll 的路径各不相同。找出正确路径的方法是在“模块” Pane 中查找 mscorwks.dll。无论从哪里加载都是 sos.dll 的正确路径。

然后输入:

System.GC.Collect()

这将确保收集任何无法到达的东西。然后输入:

!DumpHeap -type <some-type-name>

这将向您显示所有现有实例的表格,以及地址。您可以像这样找出使实例保持事件状态的原因:

!gcroot <some-address>

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com