NSFetchRequest をプログラムで作成するのと比較して、フェッチ リクエスト テンプレートを作成することでパフォーマンスが向上するかどうか興味があったので、これを測定するためのテストをいくつか書きました。これが github のソースです。
シミュレーターと iPhone での同じ順序の違い (一連のフェッチを実行する時間間隔を測定):
just creating an NSFetchRequest: 4.399674
creating a Fetch Request Template: 0.501369
NSFetchRequest with field indexed: 0.407068
Fetch Request Template and field indexed: 0.281876
Fetch Request Template を作成すると、約 7 ~ 9 倍のパフォーマンスが向上することがわかりました。下に適切なインデックスを作成しているのかもしれませんが、インデックス付きフィールドに一致するフェッチ リクエスト テンプレートを作成すると、さらにパフォーマンスが向上します。
これが事実であることを知ってうれしいですが、パフォーマンスの向上を説明するフェッチリクエストテンプレートの下で一体何が起こっているのか知りたいですか?