2

私が本当に答える必要がある簡単な質問:

どちらがより多くのメモリを使用しますか?

100 万のオブジェクトまたはNSMutableArray1 つのオブジェクトで100 万のオブジェクト? NSMutableArrays

違いはありますか?

4

2 に答える 2

1

100 万個の配列では、さらに多くのメモリが使用されます。

于 2013-07-11T16:51:32.643 に答える
1

1 つのオブジェクトを持つ 100 万の NSMutableArray は、より多くのメモリを消費します。

ポインターとその要素のサイズを持つ基本的な NSMutableArray 実装を想定します。

  • ポインタは4から8バイトになります
  • サイズは 4 ~ 8 バイトです。
  • その場合、各インスタンスには 2 つの割り当て (オブジェクト用に 1 つ、配列用に 1 つ) が必要になります。これは、これらのアドレスがどこかで追跡されることを意味します。
  • へのポインタを追加しisa、さらに 4 ~ 8 バイト

これは必ずしも NSMutableArray の実装方法と正確に一致するわけではありませんが、汎用実装での各インスタンスのメモリ コストを把握するのに役立ちます。

したがって、これらすべての部分の合計を取得して、次のようにします。

  • 1000000を追加 *sizeof(int*)
  • または1000000を掛けますか?

これにより、1M 配列はより多くのメモリを消費することがわかります。もちろん、実数が必要な場合は、Instruments を使用してこれをテストできます。

于 2013-07-11T17:19:27.483 に答える