[PR]
2024年11月22日
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
CoreDataが開く新たな可能性
2009年11月02日
現在KigenやTiny3Dでデータ保存をCoreDataで行ったらどうなるのか、性能評価試験をしています。まだリリース用としての作り込みまでは至っていませんが、いろいろとメリットがありそうです。大きなメリットは以下の2つになります。
1.データベースの各項目間での連携が行いやすい
例えばKigenの場合だと期限や個数の変更をトップのカテゴリへ簡単に通知できるため、「カテゴリの中の期限が1個でも期限切れなら、カテゴリの名前を赤くする」などということも簡単に実現できる。
2.データの読み書きが高速
SQLite3を直接使うのと同様に各項目単位での小刻みな保存が出来るため、現行版Tiny3D(現在は機能拡張性を考慮してデータ保存にNSMutableDictionaryを利用しています)での問題であった「巨大なファイルを終了時に保存しようとして失敗する」問題が解消できる。キャッシュデータの読み込みも高速なので、3D表示への切り替えも今以上に速く行える。このレベルの変更なら逐次変更、このレベルの変更なら表示前に変更といった切り分けにも柔軟に対応できる。
そのため次回のバージョンアップはおそらく両者とも内部データ保存形式をCoreDataに変更する事になります。過去のデータはバージョンアップ後の初回起動時に変換するようにしようかなと考えています。欠点として動作OSが3.0以降になってしまうことがありますが、それを補って余りある利点があると判断しました。
1.データベースの各項目間での連携が行いやすい
例えばKigenの場合だと期限や個数の変更をトップのカテゴリへ簡単に通知できるため、「カテゴリの中の期限が1個でも期限切れなら、カテゴリの名前を赤くする」などということも簡単に実現できる。
2.データの読み書きが高速
SQLite3を直接使うのと同様に各項目単位での小刻みな保存が出来るため、現行版Tiny3D(現在は機能拡張性を考慮してデータ保存にNSMutableDictionaryを利用しています)での問題であった「巨大なファイルを終了時に保存しようとして失敗する」問題が解消できる。キャッシュデータの読み込みも高速なので、3D表示への切り替えも今以上に速く行える。このレベルの変更なら逐次変更、このレベルの変更なら表示前に変更といった切り分けにも柔軟に対応できる。
そのため次回のバージョンアップはおそらく両者とも内部データ保存形式をCoreDataに変更する事になります。過去のデータはバージョンアップ後の初回起動時に変換するようにしようかなと考えています。欠点として動作OSが3.0以降になってしまうことがありますが、それを補って余りある利点があると判断しました。
PR
Comment