内存管理/内存压缩
外观
当从内存池中分配内存时,随着时间的推移,内存池会变得碎片化。一些从内存池分配的对象被未分配的对象包围,以看似随机的顺序排列。内存压缩是指将已分配的对象移动在一起,并将空闲空间放在一起的过程。
考虑一个包含 3 个页面的系统,其中大约 50% 的对象已被分配。通过压缩,所有活动对象被移动到前两个页面,使第二个页面的后半部分和第三个页面完全空闲。在未来的标记/清除阶段,可以忽略空闲页面,因为已知它不包含活动对象,或者可以将其释放并返回给所需的系统。内存压缩是正确分配内存非常重要的技术。