我刚刚在整理我的WPF应用程序中的一些内存泄漏问题。为此,我使用了CLR分析器和观察Windows任务管理器中的进程统计信息。我的基本测试是确保关闭某个窗口后,它不会仍然停留在内存中。
我对Windows开发还有些陌生,最初我感到困惑的是,在一个简单的测试应用程序中,似乎无论如何,我的窗口在关闭后总是停留在内存中。但我最终弄清楚了,这并不意味着存在内存泄漏,而只是它们尚未被垃圾收集。因此,我不得不在我的主窗口中创建一个按钮,将其连接到包含手动强制进行垃圾收集代码的事件处理程序中。通过手动进行垃圾收集,我可以完成内存泄漏测试,并将其全部解决。
但这让我思考 - 是否曾经需要手动强制进行垃圾收集?
看着我的应用程序的内存消耗越来越多当我打开和关闭窗口时,这让我感到痛苦。当然,最终,垃圾回收自动运行,这一切都得到了解决。但是,关闭这些重型窗口后手动垃圾回收似乎是个好主意。但这有意义吗?我觉得除了测试之外,我们不应该强制进行垃圾回收 - 只需让系统自行处理。
欢迎发表您的想法。