【发布时间】:2017-08-30 09:54:27
【问题描述】:
在生产中安装 Windows 服务之前,我一直在寻找可以执行的可靠测试,以确保我的代码不包含内存泄漏。 但是,我在网上能找到的只是使用任务管理器查看已用内存或一些付费的内存分析工具。
据我了解,查看任务管理器并没有太大帮助,也无法确认内存泄漏(以防万一)。
如何确认是否存在内存泄漏?
有没有免费的工具可以找到内存泄漏的根源?
注意:我正在使用 .Net Framework 4.6 和 Visual Studio 2015 社区
【问题讨论】:
-
这一切都取决于你的服务究竟做了什么。
-
@Evk 无论服务做什么,我如何确保服务中没有内存泄漏?
-
我的意思是很难真正测试程序的内存泄漏,尤其是 Windows 服务。您必须在一段时间内广泛地实际使用它。不断增长的内存本身并不表示泄漏,因为如果没有理由(没有内存压力),GC 可能会决定不收集任何东西。所以你能做的最好的就是编写没有泄漏的好代码,并且随着时间的推移监控应用程序的内存使用情况,如果内存达到某个阈值,则收集内存转储并使用分析器分析它们。
标签: c# memory-leaks