我们有一个每天24小时,每周7天运行的应用程序。有时CPU会达到100%,然后回到80%。RAM也是如此。手动调用
我们使用C# 2010,SQL 2008和Fluent Nhiberanet。这是一个桌面应用程序。
GC.Collect
几个小时后是否明智,还是最好自动留给它处理。我们使用C# 2010,SQL 2008和Fluent Nhiberanet。这是一个桌面应用程序。
GC.Collect
几个小时后是否明智,还是最好自动留给它处理。我不认为每隔几个小时或当RAM使用率过高时调用GC.Collect()
是明智的,但当你拥有比GC更多的信息时调用它是明智的。以下是一些例子:
GC是一段高度优化的代码,非常智能,但它只能根据它所拥有的信息工作。
手动调用 GC.Collect 绝不是个好主意,你应该探究为什么你的应用程序会占用这么多资源,而不是每次接近 100% 时都清理它们。
看一下下面的内容,我认为这真的值得一读:
通常框架本身会在需要时处理调用GC,您可以尝试在一天内不自己调用它来运行它。
GC.Collect
不会神奇地解决问题,如果您持有不必要的引用或忘记取消委托,则无济于事。框架会定期自行收集垃圾,因此我不认为每隔几个小时调用 GC.Collect
会改变任何东西。