タグ

CoreDataとPerformanceに関するfoxsafariのブックマーク (2)

  • 画像を含むCoreDataのフェッチ速度を改善する - blog.ishkawa.org

    LRUなディスクキャッシュを実装する場合など、CoreDataに画像を突っ込みたくなることがあると思います。 しかし、画像をそのままattributesに突っ込むことはフェッチ速度の低下につながります。 何か上手い方法はないかな〜と思ってAppleのCoreDataプログラミングガイドを眺めていたら、ありました。 画像などのBLOBをCoreDataに突っ込む場合、BLOBであるattributeをエンティティから切り離すと良いそうです。 今回は、これについて検証したことを紹介します。 比較するデータ構造 ISFatUser attributesに画像が突っ込まれたエンティティです。 BLOBが入っているので”Fat”です。 ISUser 画像を別のエンティティに切り分けたエンティティです。 attributesに画像を持たない代わりに、画像を持つエンティティ(ISIcon)とrelat

  • A-Liaison BLOG: Core Data のパフォーマンスをちょっとだけ調べてみた

    ちょっと仕事で触ってみて分かった範囲のことを書きます。断りがない限り、 iPhone 3GS で Wifi 接続環境下においてテストしました。 ■キャッシュ無し vs キャッシュ有り executeFetchRequest:error: メソッドを用いて、 Entityのプロパティで一件だけ絞り込んで返すようなクエリは大変遅いということが分かりました。Indexを付けて実行してもほとんど速くなりません。どうやらそもそもバックエンドに使っているSqliteが大変遅い、特にコネクションを生成したり破棄したりするのが遅い感じがするので、ループで一件ずつ取得するなどのときはたくさんのSQLが実行されないようにする必要があります。 objectWithID: メソッドは試していないのでちょっと不明です。 回避策として、アプリが起動したタイミングで当該エンティティの全オブジェクトをあらかじめ取ってきて

  • 1