2

1つのNSManagedObjectサブクラスが持つべき属性の最大数に関するガイドラインがあるかどうか知りたいのですが。私はAppleのドキュメントを注意深く読んだが、パフォーマンスが低下し始める限界については言及されていない。

NSManagedObjectに100を超える属性がある場合に警告を提供するコンパイラフラグオプションがXcodeに表示されますが、ドキュメントが見つかりません。ここにいる誰かが、多数の属性を持つCore Data MOの経験がありますか?

私はメモリ使用量ではなく、パフォーマンスに重点を置いています。私のアプリでは、多数の属性を持つこのMOのインスタンスは約10〜20個しかなく、iOSではなくOS Xで開発しているため、メモリ使用量は要因ではありません。ただし、パフォーマンス(特に障害が発生した場合)が低下し始めるポイントがある場合は、それに応じてデータモデルの構造を変更できるように、今すぐ知りたいと思います。

ありがとう!

4

2 に答える 2

5

SQLite バッキング ストアを使用している場合、各属性はテーブル列にマップされます。SQLite では、使用できる列の数に厳しい制限があり (デフォルトでは 2000 ですが、コンパイル時に構成できるため、Apple の実装が異なる可能性があります)、100 を超える列を使用しないことをお勧めします。これが、Xcode の警告がしきい値を 100 に設定する理由である可能性があります。

制限に関する同じリンクされたページには、N が列の数である O(N^2) アルゴリズムがいくつかあることにも注意してください。

他のファイル形式については、制限や推奨事項はわかりません。しかし、私は同様のことを期待しています-つまり、おそらく O(N^2) またはそれより悪いアルゴリズムがいくつかあるので、まれなエッジケースになることを避けたいと思います.

于 2012-11-29T06:18:33.313 に答える