我创建了一个带有2个Dialogs的示例程序。两个对话框都有一个图片框,一个调用pictureBox1.Image.Dispose();在受保护的覆盖void Dispose(bool disposing)方法中,另一方法没有。
当你运行程序并使用任务管理器查看内存使用情况时,显然非常显示不调用pictureBox1.Image.Dispose()的对话框;泄密记忆非常糟糕。
是否有人建议使用能够以明确方式显示问题的工具?
有没有办法计算特定c#源文件的内存分配/释放?至少这是我能用非托管C ++做的事情。
答案 0 :(得分:10)
在VS2010中尝试Analyze
> Launch Performance Wizard
菜单选项并选择内存选项。
在VS2017中,它是Analyze
> Performance Profiler...
答案 1 :(得分:4)
查看蚂蚁分析器:http://www.red-gate.com/products/dotnet-development/ants-memory-profiler/
有一个14天的免费试用版和许多有用的教程可以帮助您入门。
答案 2 :(得分:2)
作为VS嵌入式性能分析器的替代,我发现Jetbrains的 DotMemory 实用且容易。