在32位机器上,每个进程都会获得4GB的虚拟空间。在这种情况下,人们可能会担心由于内存碎片而遇到麻烦。但是,在64位机器上,我们在理论上有一个巨大的可寻址虚拟内存,所以为什么内存碎片仍然是一个问题呢(如果是的话)?
考虑到所有这些内存都是“浪费”的,可以考虑一个应用程序,其中有很多内部碎片。由于工作集现在在内存中分散,因此该过程需要更多的内存页面,这意味着它的内存占用量要高得多。如果该应用程序正在争夺 RAM 中的物理插槽(对于典型家庭设置,计算机仍然只有约 4-8 GB 的 RAM),则会导致更多的页面交换。通常,您希望减少应用程序的内存占用量,以避免内存压力并与其他应用程序竞争。
然而,有些情况下实际上并不重要,使用额外的一兆字节或者更多并不会对你造成致命的后果,但在更大的应用程序中所有这些都会累加。具体情况取决于你编写代码的目的或项目的目的,是否有必要尽可能地减少碎片化。