cocoa - 你曾经使用过 NSZoneMalloc() 而不是 malloc() 吗?

标签 cocoa memory-management history

Cocoa 提供了它称为 Memory Zones 的页对齐内存区域。 ,并提供了一些以区域为参数的内存管理函数。

假设您需要分配一 block 内存(不是为对象,而是为任意数据)。如果您调用malloc(size) ,缓冲区将始终分配在默认区域中。然而,有人可能用过allocWithZone:将对象分配到默认区域之外的另一个区域中。在这种情况下,使用 NSZoneMalloc([self zone], size) 似乎会更好。 ,这将使您的缓冲区和拥有的对象保持在同一内存区域中。

你遵循这种做法吗?您使用过内存区域吗?

更新:我认为 Stack Overflow 上有一种倾向,通过有关过早优化的讲座来回答有关低级主题的问题。我知道 1993 年 NeXT 硬件上的区域可能比今天更重要,而且 Google 搜索很清楚地表明几乎没有人关心它们。无论如何,我想看看是否有人可以描述一个使用内存区域的项目。

最佳答案

我为 Linux 上的 NeXTStep、GNUstep 和 Mac OS X 上的 Cocoa 编写了软件,并且从未需要使用自定义内存区域。表明它是对软件的良好改进的条件要么从未出现过,要么从未被检测到具有重要意义。

关于cocoa - 你曾经使用过 NSZoneMalloc() 而不是 malloc() 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/593241/

相关文章:

language-agnostic - 面向对象编程的发展背后的思想是什么?

cocoa - 在 NSScrollView 中使用自定义 View 时的工件

ios - 浪费了太多内存,同时循环了15K次:OS-X应用程序

c - Linux 内核中的内存映射 - vamlloc() 和 kmalloc() 的使用

linux - Unix shell 目录历史

workflow - 如何访问 Anonymous 的 review_history

iphone - rangeOfCharacterFromSet 到底做了什么?

objective-c - 如何跨多个项目在 Cocoa Touch 中实现服务定位器模式?

xcode - macOS 应用程序的自定义重定向 URI 不起作用

c# - 没有 GC 的无限方法参数