我知道分代垃圾收集可以提高性能,因为
我有没有看到一些性能优势?
答案 0 :(得分:0)
但是,我很好奇,从Gen1垃圾收集中省略大对象会有什么性能优势?
有两件事 -
首先,大型物体(大到足以放在LOH上)往往具有更长的寿命。短暂的大型物体很少见,在需要的情况下,您通常可以重复使用它们。通过不进行扫描,您可以有效地避免扫描,这种扫描几乎总是会导致无论如何都要保留物体。这往往会给你一个胜利。
此外,为了有效地处理Gen1中的对象,并获得Gen1提供的许多优点,他们需要能够压缩。分代收集器的一大优势是,您可以压缩最新的分配,这有助于保持内存压力更低,因为碎片往往表现更好。 Gen1中的大型对象会导致性能或内存问题,因为它们要么需要压缩(现在,大型对象不会被压缩,因为“移动”它们很昂贵)或者它们会导致额外的碎片蠕动。