.Net 4.0 垃圾回收器的执行方式有何变化吗?
还有AppDomainResourceManager功能,它允许您跟踪每个应用程序域的资源使用情况(内存和CPU)。 此功能的GC部分是获取每个应用程序域内存跟踪的能力。
还有一个使用新类System.Runtime.CompilerServices.ConditionalWeakTable
实现的短暂物,详细信息请查看此处。
这对于收集允许在任意实例上设置任意“属性”的动态语言非常有用。
是的,有很多。
我的最新书籍《Visual F# 2010 技术计算》包含了关于.NET 4以及F#本身的大量性能相关信息,而且针对.NET 4和新的后台垃圾收集器,性能测量和建议也有所不同。在许多情况下,我们看到了相当大的性能提升,但也有一些减速现象。
X
创建到对象Y
的单个链接,除了为此目的创建ConditionalWeakTable
实例之外,还有其他方法吗? - supercatSystem.WeakReference
。 - Doug McCleanX
到Y
的“链接”时,我的意思是如果存在到X
的引用,则系统将认为Y
具有强根引用,而无需X
本身持有对Y
的引用。在.NET 4.0中,Y
可以通过拥有一个ConditionalWeakTable myCWT
字段并执行myCWT.Add(X, this);
来创建从X
到自身的这样一个引用。然而,为了容纳一个项目而创建表似乎是浪费的,除非创建单个此类项目的运行时成本与创建表的成本相当。 - supercat