【发布时间】:2012-05-18 16:23:38
【问题描述】:
我下载了“Under the hood of .Net Memory Management”一书的免费副本。在其中一章中,作者提到了各个代的阈值,这将迫使 GC 收集该特定代和所有其他子代。下面给出的确切文本:
GC 在以下任一条件下自动在单独的线程上运行。
当任何一代中对象的大小达到特定于一代的阈值时。准确地说,当:
- 第 0 代命中 ~256 K
- 第 1 代命中 ~ 2 MB(此时 GC 收集第 1 代和第 0 代)
- 第 2 代达到 ~10 MB(此时 GC 收集第 2、1 和 0 代)
值得牢记的是,上述阈值仅仅是起始级别,因为 .NET 根据应用程序的行为修改级别。
我想知道是否有办法确定给定应用程序运行时的第二代当前阈值是多少。
【问题讨论】:
标签: c# .net garbage-collection