.NET 4.0中的垃圾回收

19

.Net 4.0 垃圾回收器的执行方式有何变化吗?

5个回答

12

3

还有AppDomainResourceManager功能,它允许您跟踪每个应用程序域的资源使用情况(内存和CPU)。 此功能的GC部分是获取每个应用程序域内存跟踪的能力。


3

出于好奇,您知道是否有其他使用弱引用映射的类吗?例如,如果希望从对象X创建到对象Y的单个链接,除了为此目的创建ConditionalWeakTable实例之外,还有其他方法吗? - supercat
@supercat,自 .Net 1.0 起就有了 System.WeakReference - Doug McClean
当我说从XY的“链接”时,我的意思是如果存在到X的引用,则系统将认为Y具有强根引用,而无需X本身持有对Y的引用。在.NET 4.0中,Y可以通过拥有一个ConditionalWeakTable myCWT字段并执行myCWT.Add(X, this);来创建从X到自身的这样一个引用。然而,为了容纳一个项目而创建表似乎是浪费的,除非创建单个此类项目的运行时成本与创建表的成本相当。 - supercat

2

是的,有很多。

我的最新书籍《Visual F# 2010 技术计算》包含了关于.NET 4以及F#本身的大量性能相关信息,而且针对.NET 4和新的后台垃圾收集器,性能测量和建议也有所不同。在许多情况下,我们看到了相当大的性能提升,但也有一些减速现象。


2
此外,还可以查看负责GC开发的开发人员的博客,其中有一篇关于新GC的文章,以及一个关于.NET 4.0 GC的Channel 9采访链接。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接