可以将对象自动分配给第二代GC吗?

iea*_*lle 4 .net c# garbage-collection

在一次采访中,我被问到是否会有一些物体被自动分配给第二代垃圾收集器,我不知道该回答什么.

这可能吗?

也许如果物体足够大以保持零或第一代?

Chr*_*heD 7

新分配的对象形成新一代对象,并且隐式生成0集合,除非它们是大对象,在这种情况下它们在第2代集合中的大对象堆上.

(链接:垃圾收集基础)

所以是的,大型对象会自动转到第2代.

什么时候对象被认为是大的

在Microsoft®.NETFramework 1.1和2.0中,如果对象大于或等于85,000字节,则将其视为大对象.这个数字是性能调整的结果.当对象分配请求进入并满足该大小阈值时,它将在大对象堆上分配.这究竟是什么意思?要理解这一点,解释有关.NET垃圾收集器的一些基础知识可能是有益的.

(链接:CLR Inside Out:大对象堆未被覆盖)