ManagedObjectContext の保存のパフォーマンスは、含まれる (変更されていない) オブジェクトの数に依存しますか?

StackOverflow https://stackoverflow.com/questions/2229690

質問

CoreData/SQLite に関する一般的な質問

ファイルを保存するときに、これら 2 つのシナリオの間に大きな違いはありますか? NSManagedObjectContext SQLite ストアを使用する場合:

  • 追加・変更・削除後 1つ 中のオブジェクト NSManagedObjectContext 含む 10 それ以外は変更なし NSManagedObjects
  • 追加・変更・削除後 1つ 中のオブジェクト NSManagedObjectContext 含む 10'000 それ以外は変更なし NSManagedObjects
役に立ちましたか?

解決

私はあなたのシナリオの両方をインデックスとインデックスとわずかに遅い二ずに均等に速いだろうと言うでしょう(コアデータから進化)エンタープライズオブジェクトとの私の経験から一般化。

の使用とSQLストアのオブジェクトを追加するコストが大幅にかかわらず、多くの他のオブジェクトがグラフ内にあるかの固定されています。インデックスは、インデックスが他の既存のオブジェクトに依存しているため、スケーリング効果を与えていません。しかし、ほとんどの場合には、これは重要ではありません。

よりセーブグラフ内のより複雑な関係は、全グラフの大きさによって影響を受けます。もちろん、あなただけの10個のオブジェクトを持つグラフを持っている場合は、何の関係が、それ以上の10個のオブジェクトを持つことはできません。あなたは万のものを持っている場合は、関係が潜在的に非常に大きく、処理に時間がかかります。

要するに、SQLストアとCore Dataは、グラフのジャストサイズによってほとんど影響を受けないように見えます。

他のヒント

有意な差があるかどう

プロファイリングはあなたを教えてくれます。しかし、私は、ストアコーディネータのタイプはパフォーマンスに影響を与えると思われます。 SQLiteデータベース内のオブジェクトを更新すると、おそらく、より速く、よりスケーラブルなXMLツリーにそうするよります。

私の以前の経験では有意な差はありません。オブジェクトが追加されている場合は、/変更/削除されたインデックス付きの属性が多く含まれ、それはありませんインデックス付き属性を持つオブジェクトの場合と比較すると、ちょうど少しかかりますが、これは、インデックスので、期待されても同様に変更されます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top