如果第2代被填满,垃圾收集期间会发生什么?

spk*_*nny 13 .net c# garbage-collection

我现在正在通过C#重新阅读CLR,并对.NET中的垃圾收集有一些疑问.在本书中,在填充第0代之后,垃圾收集开始并将所有未完成的对象引用移动到第1代.

当第1代被填满时也会发生同样的情况.但是当第二代被填满时会发生什么?没有其他代移动参考.CLR扩大了第2代的规模吗?

And*_*are 20

是的,如果可以,它将扩大第2代的规模.如果没有更多可用空间,您将得到一个OutOfMemoryException.