ill*_* mg 5 c# garbage-collection
第0代:所以我读到当gen 0超过大小阈值时gen 0触发.但我也读到GC不是在"新"中执行,因为"新"只是向前滑动地址.那么,什么时候检查它是否超过了触发gen 0 GC的阈值?
Gen 1/2:gen 1/2有自己的大小阈值触发GC吗?他们什么时候考虑门槛?是幸存者晋升为天才的那一刻吗?
这是否意味着gen 1 GC发生它首先检查gen 0,然后将它们提升到gen 1,只发现gen 1超过了阈值,所以它检查gen 1,并再次检查gen 0?
这是否意味着发生gen 2 GC它首先检查gen 0,然后将它们提升到gen 1,只发现gen 1已超过阈值,因此它检查gen 1,并再次检查gen 0.然后将gen 0升级到gen 1,将gen 1升级到gen 2,只发现gen 2已超过阈值,因此它再次检查gen 2,gen 1和gen 0?
当虚拟机内存不足时,Gen 0 会触发。
当 Gen 0 没有释放足够的内存且内存仍然不足时,Gen 1 就会触发。
当 Gen n - 1 没有释放足够的内存并且仍然内存不足时,Gen n 会触发。
如果到达最后一代,但仍然没有释放足够的内存,则会分配新内存。