私はアプリケーションでORMLiteを使用しており、greenDAOに移行するかどうかを検討していました。
パフォーマンスはその決定の大きな部分であり、 greenDAOの機能ページ は次のように述べています。
同じ特定のエンティティに対して、greenDAOはエンティティの挿入と更新を2倍以上高速化し、エンティティのロードはORMLiteよりも4.5倍高速にロードします。
...
(図とグラフは2011年10月23日更新)
私は ORMLiteの構成ファイルの生成 ステップは実行時にリフレクションの必要性を取り除くべきだと思いました。
ORMLite changlog は、設定ファイル機能がリリースされた後にgreenDAOベンチマークが実行されたことを示唆していますが、テスト用に静的設定ファイルが生成されたかどうかは、greenDAO機能のページには明示されていません。
4.26:2011年9月26日(svn r1978)
* Android:注釈に関するDaoの作成パフォーマンスの問題を回避するためにフィールド構成ユーティリティが追加されました。
その後、ORMLiteパフォーマンスの修正も行われました。
4.40:2012年4月16日(svn r2516)
* Android:DAO作成時のパフォーマンスの大きなバグ修正。外部フィールドは常にテーブル設定の代わりにリフレクションを使用していました。
GreenDAOとORMLiteのパフォーマンスに大きな違いがあるかどうか誰かが確認できますか?ありがとう!
ORMLiteとGreenDaoのパフォーマンスを生のSQLiteと比較するために使用したGithubプロジェクトを公開しました。
https://github.com/daj/Android-orm-benchmark
このプロジェクトでは、インメモリデータベースのパフォーマンスをディスク上のデータベースと比較することもできます。
見出しの結果は次のとおりです。
GreenDaoはORMLiteよりもはるかに高速です。それは大まかにです:
プロジェクトには、ナイーブな生のSQLiteベンチマークと 最適化されたSQLiteベンチマーク の両方が含まれています。
GreenDao vsun最適化された生のSQLite
GreenDaoと最適化された生のSQLite
詳細な結果については、上記のGithubリポジトリを参照してください。
もちろん、ベンチマークコードにバグがある可能性があります...見つかった場合は、フォークして修正し、プルリクエストを送信してください! :-)
免責事項:ORMLiteではなくGreenDaoを選択する前に、必ず独自の調査を行ってください。