【发布时间】:2010-09-02 15:14:00
【问题描述】:
我遇到 GC 没有时间删除空闲对象的情况。该代码将一个大文档加载到内存中并循环处理它。如果我在此循环中停止(在调试模式下)或添加 GC.Collect(),内存使用量将降至 70 MB 以下。
如何调整 GC?有没有调整 GC 的最佳实践?
【问题讨论】:
-
您能否详细介绍一下您的场景以及 GC 如何影响您的应用程序?你怎么知道GC“没有时间”删除对象?
-
不能说我曾经调整过任何东西,更不用说 GC。但是,如果您在这里进行一些搜索,您会发现有一个压倒性的最佳实践不要这样做。调整您的应用程序以正确分配和
Dispose(),GC 将与您合作。 -
代码将大文档读入内存并处理它,因此在其中一种方法中呈现循环处理该文档的位置。如果我在此循环中停止(在调试模式下)或添加 GC.Collect() 内存小于 70 MB。
-
如果您在循环中不提供帮助,具体的问题是什么?
-
为什么这么高的内存使用很重要?如果需要,GC 会删除它。大多数时候,它不需要,所以它就不管它了。
标签: .net garbage-collection performance