你使用垃圾收集器的现实生活场景?

时间:2011-04-19 04:56:05

标签: c# asp.net .net garbage-collection

我知道所有的理论:

我知道什么是GC,何时调用dispose,在调用时终结。

我想知道,在你的直播项目中..哪种情况已经使用了所有这些。

  • 我的意思是项目时 经理/客户坚持要你 清理记忆?当你找到 程序中的任何错误?的种类 错误消息或错误日志?什么时候 你的程序因为崩溃而崩溃了 不必要的记忆或任何其他 场景?

3 个答案:

答案 0 :(得分:5)

您不应该关心何时以及如何调用GC。它足够聪明地知道何时运行以及要释放哪些对象。

您还应该手动或使用“使用”实现IDisposable的所有对象来处理。然后,您将使用未受管理的资源(如文件)来防止许多错误。

如果你的内存不足,那么你的算法或代码本身就会出现问题。 Manualy调用GC.Collect是一个很大的讨论,特别是在生产代码中。

答案 1 :(得分:1)

根据经验,如果聚合一次性对象,或者如果您持有非托管资源,则需要实现IDisposable。对于这两种情况,清理工作的方式不同。否则,保持简单,不要使用dotnetisms乱丢你的代码

Similar question here

内存泄漏导致服务器崩溃。因果关系。

答案 2 :(得分:1)

资源管理是您不得不做的事情。这不是'我的客户坚持我释放我的记忆'。这简直是​​一种很好的做法。并非所有应用程序都可能崩溃,用户只需重新启动它们 - 那里有一个或其他服务器应用程序。

如果您开始构建编程库,那么资源管理和并发应该是您的首要任务,否则您将无法快速实施任何解决方案。

HTH

马里奥

相关问题