GC什么时候运行?

时间:2010-09-24 07:28:07

标签: .net

GC何时实际运行?它是在某个时间间隔内运行还是在应用程序需要内存或什么时候运行?

3 个答案:

答案 0 :(得分:4)

简短回答:需要时。

更长的答案:

  • 无法兑现分配时
  • 卸载AppDomain时
  • 当Windows报告内存不足时
  • 调用GC.Collect时

此外,GC可能会在某些时候完成。

答案 1 :(得分:0)

来自MSFT

(有关详细信息,请参阅链接):

  

.NET Framework的垃圾收集器   管理分配和发布   内存为您的应用程序。每一次   你创建一个新的对象,常见的   语言运行库为内存分配内存   托管堆中的对象。如   只要地址空间可用   托管堆,运行时   继续为新的空间分配空间   对象。但是,记忆不是   无穷。最终垃圾   收藏家必须执行收藏   为了释放一些记忆。垃圾   收藏家的优化引擎   确定执行a的最佳时间   集合,基于分配   正在制作当垃圾收集器   执行收集,它检查   托管堆中的对象   不再被使用了   申请并执行必要的   回收他们的记忆的行动。回收他们的记忆。

答案 2 :(得分:0)

1. .NET Framework的垃圾收集器管理 为您的应用程序分配和释放内存。

  1. 每次创建对象时,运行时都会分配 来自托管堆的对象的内存。 3.垃圾收集器必须按顺序执行收集 释放一些记忆。垃圾收集器的优化 引擎确定执行收集的最佳时间, 根据正在进行的分配。 4.当垃圾收集器执行收集时,它 检查托管堆中不再存在的对象 被应用程序使用并执行必要的操作 回收记忆的行动。