NSMutableArrays的最佳内存管理

时间:2013-07-11 16:44:33

标签: iphone memory-management nsmutablearray

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

哪个使用更多内存?

NSMutableArray一个百万个对象 一百万NSMutableArrays一个对象?

会有差异吗?

2 个答案:

答案 0 :(得分:1)

一百万个数组会占用更多内存。

答案 1 :(得分:1)

一百万个带有一个对象的NSMutableArrays将占用更多内存。

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

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

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

那么你宁愿把所有这些部分的总和拿出来:

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

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