【发布时间】:2009-07-21 01:19:37
【问题描述】:
.Net 4.0 垃圾收集器执行有什么变化吗?
【问题讨论】:
标签: .net garbage-collection .net-4.0
.Net 4.0 垃圾收集器执行有什么变化吗?
【问题讨论】:
标签: .net garbage-collection .net-4.0
还有 AppDomainResourceManager 功能,可让您跟踪每个 appdomain 的资源使用情况(内存和 CPU)。 此功能的 GC 部分是能够获取每个 appdomain 内存跟踪。
【讨论】:
还有一个ephemeron 实现,它使用一个名为System.Runtime.CompilerServices.ConditionalWeakTable 的新类,即detailed here。
这对于收集允许在任意实例上设置任意“属性”的动态语言很有用。
【讨论】:
X 到对象Y 的单个链接,那么除了创建ConditionalWeakTable 实例以保持单个链接之外,还有其他方法吗?
System.WeakReference。
X 到Y 的“链接”时,我的意思是如果X 存在这样的引用,系统将认为Y 具有强根引用,没有X 本身必须持有对Y 的引用。在 .net 4.0 中,Y 可以通过具有 ConditionalWeakTable myCWT 字段并执行 myCWT.Add(X, this); 来创建从 X 到自身的此类引用。但是,为了保存一个项目而创建一个表似乎是一种浪费,除非创建一个这样的项目的运行时成本与创建一个表的成本相当。
是的,很多。
我的最新一本书Visual F# 2010 for Technical Computing 包含了很多关于 .NET 4 以及 F# 本身的性能相关信息,并且性能测量和建议与 .NET 4 和新的后台垃圾收集器完全不同。在许多情况下,我们看到了显着的性能改进,但也有一些放缓。
【讨论】:
另外,请查看从事 GC 工作的开发人员的 blog,其中有一篇关于新 GC 的文章,以及关于 .NET 4.0 GC 的 Channel 9 采访的链接。
【讨论】: