iphone - NSMutableArrays 的最佳内存管理

标签 iphone memory-management nsmutablearray

我真正需要回答的一个简单问题:

哪个使用更多内存?

一个带有一百万个对象NSMutableArray或者带有一个对象的一百万个NSMutableArrays

会有区别吗?

最佳答案

一百万个带有一个对象的 NSMutableArrays 会消耗更多内存。

假设一个基本的 NSMutableArray 实现,它有一个指针和元素的大小:

  • 指针为 4 到 8 个字节
  • 大小为 4 到 8 个字节
  • 那么每个实例都需要两次分配(一次用于对象,一次用于数组),这意味着这些地址会在某个地方进行跟踪。
  • isa 添加一个指针,另外 4 到 8 个字节

现在这不一定是 NSMutableArray 的实现方式,但它让您了解通用实现中每个实例的内存成本。

那么您是否愿意将所有这些部分相加:

  • 添加 1000000 * sizeof(int*)
  • 或者乘以 1000000?

这应该让您知道 1M 数组将消耗更多内存。当然,如果您需要实数,您可以使用 Instruments 进行测试。

关于iphone - NSMutableArrays 的最佳内存管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17599029/

相关文章:

iphone - 无法初始化 PeerConnectionFactory

iphone - 整个文件不可用时 MPMoviePlayerViewController 的通知?

错误时释放资源的 goto 链的 OOP 等价物?

ios - 包含字典的数组的文件

iphone - 使用 NTimer 更新 NSDateFormatter

iphone - NSString stringWithFormat 问题

c - 如何修复我的 C 程序中的内存错误?

mysql - 为什么即使有足够的 RAM 来映射页面,MySQL 服务器仍使用交换空间?

ios - 找出 NSArray/NSMutableArray 变化的索引

iOS NSMutableArray 到 NSString 然后保存到设备 >>> 内存不足