0

したがって、Core Dataリレーションシップには、NSSetを介してマップされた他のオブジェクトとのリレーションシップを持つオブジェクトがあります。プライマリオブジェクトを取得したら、NSSetを反復処理する必要があります。ただの反復で、何も派手ではありません。

さて、この記事によると、NSArrayはNSSetよりもはるかに高速です。http://www.cocoawithlove.com/2008/08/nsarray-or-nsset-nsdictionary-or.html

私のNSSetはそれほど大きくなることはないので、この場合はそれほど重要ではないと思います。ただし、一般的に知りたかったのですが、反復のためにNSSetをNSArrayに変換するオーバーヘッドは、全体的にさらに高速ですか?

ありがとう!

4

1 に答える 1

2

NSSetをNSArrayに変換するには、セットを反復処理する必要があります。また、配列にメモリを割り当てる必要があるため、繰り返し反復処理しない限り、セットを反復処理する方が高速です。

しかし、どちらの場合でも、かなり大きなセットであっても、ナノ秒を話している可能性があります。実際のパフォーマンスの問題をプロファイリングし、データがその問題を示していない限り、私は本当にそれについて心配することはありません。

また、リンクしたパフォーマンスの数値は、自分で作成したコレクションにのみ実際に適用されます。フレームワークからコレクションを取得すると、独自のパフォーマンス特性を持つカスタム実装を備えたコレクションを返すことができます(コアデータの場合はそうなります)。

于 2012-12-04T17:02:42.883 に答える