c# - 无法使用 ANTS 内存分析器检测内存泄漏

标签 c# .net memory-leaks memory-profiling ants

我有一个自定义应用程序,可以打开一些自定义模型。 如果我在应用程序中打开一个模型,然后打开另一个模型 - 内存不会从第一个模型中释放。

当我尝试使用分析器(ANTS 内存分析器)分析内存泄漏时,应用程序释放内存,并且我无法跟踪泄漏。我该如何解决这个问题? Memory usage chart from profiler

最佳答案

当您拍摄快照时,ANTS 内存分析器会执行完整的垃圾收集。

当你想要拍摄快照时,我通常拍摄 2-3 个快照,直到两个连续快照之间没有内存差异为止。然后与您的基本快照进行比较。

进入实例列表,查看是否有任何实例正在增长。选择带有源的对象以摆脱系统对象堆。

如果有任何增长的实例,请选择一个并查看对象保留图,该图将准确显示哪个实例保存引用。

此外,请确保您已正确实现 IDisposable 并处置所有一次性对象并取消所有事件订阅。

看看下面的演练

http://www.red-gate.com/products/dotnet-development/ants-memory-profiler/walkthrough http://www.red-gate.com/products/dotnet-development/ants-memory-profiler/

关于c# - 无法使用 ANTS 内存分析器检测内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30871089/

相关文章:

c# - 屏幕阅读器的辅助功能(例如 Jaws)

c# - 将 Http 请求读入字节数组

c# - RX 最佳实践 : Select with side-effect or use subscribe?

c# - 如何从另一个类更新 Windows 窗体 GUI?

.net - 无法打开另一个 Excel 文件(当通过 .net 打开一个 Excel 时)

c# - 如何使用 C#/.NET ODBC 或 OLE 读/写 dBase III 文件?

c# - 从 SaveFileDialog 创建、写入和打开文本文件

memory-leaks - 当循环引用的访问路径被破坏时,Java 垃圾收集器如何处理循环引用?

c - 读入缓冲区时内存泄漏

recursion - 在 Swift 应用程序中找不到内存泄漏