Cocoa 提供了它称为Memory Zones的页面对齐的内存区域,并提供了一些将区域作为参数的内存管理函数。
假设您需要分配一块内存(不是为对象,而是为任意数据)。如果您调用malloc(size)
,缓冲区将始终分配在默认区域中。但是,有人可能习惯于allocWithZone:
将您的对象分配到默认区域之外的另一个区域。在这种情况下,使用 似乎会更好NSZoneMalloc([self zone], size)
,它将缓冲区和拥有对象保持在同一内存区域中。
你遵循这种做法吗?你有没有使用过内存区域?
更新:我认为 Stack Overflow 倾向于通过关于过早优化的讲座来回答有关低级主题的问题。我知道 1993 年 NeXT 硬件上的区域可能比现在更重要,而且谷歌搜索清楚地表明几乎没有人关心它们。无论如何,我都在问,看看是否有人可以描述一个他们使用内存区域的项目。