4 .net c# clr garbage-collection
假设我正在尝试分配100个字节,但由于我的GC堆中没有100个字节可用,因此会触发垃圾回收.此外,在我的GC堆中,有100mb的无法访问的对象.根据我的理解,一旦GC释放100字节,他就可以决定停止收集并继续执行程序.因此,假设GC没有释放50mb的物体,相当于100个不同的物体.
我的问题是:GC是否会调用所有终结器?即使它不会删除它们?(在这种情况下,GC决定不删除的100个无法访问的对象).
Mar*_*ell 14
问题是这里的任何东西都可能是一个实现细节,它可能在x86/x64/ia64,服务器与工作站(非常不同的GC配置文件),Mono与MS .NET,操作系统版本,.NET/CLI主要版本之间有所不同, .NET/CLI补丁版本,Compact Framework,Micro Framework等.
我不认为你应该假设任何特定的行为,除了"没有使用的终结器的对象可能会在某个时候最终确定,但即使这样也不能保证".