ORM性能:是greenDAO比ORMLite快吗?

我一直在使用ORMLite在我的应用程序,我正在考虑是否移动到greenDAO。

性能是决定的一个重要组成部分, greenDAO的function页面说:

对于同一给定实体,greenDAO插入和更新实体的速度提高了2倍,加载实体的速度比ORMLite加载实体快4.5倍。

(数字和图表更新10-23-2011)

我认为ORMLite的configuration文件生成步骤应该消除运行时reflection的需要。

ORMLite changlog表明greenDAO基准testing是在configuration文件function发布后完成的,但greenDAOfunction页面并没有明确说明是否为testing生成了一个静态configuration文件。

4.26:9/26/2011(svn r1978)
* ANDROID:添加了字段configuration实用程序,以避免注释带来的Dao创build性能问题。

从那时起,也有ORMLite性能修复,例如

4.40:4/16/2012(svn r2516)
* ANDROID:创buildDAO时出现性能问题。 外地领域总是使用reflection而不是表格configuration。

有谁能确认greenDAO和ORMLite之间是否还有很大的性能差异? 谢谢!

  • Android的SQLite的ContentResolver插入/删除/更新UI线程?
  • 哪个java ORM适合android操作系统并且支持懒表?
  • 通过滑动视图与选项卡android studio,而不是button传递数据到另一个片段
  • H2数据库与Android上的SQLite
  • Android库项目是否可以拥有自己的SQLite数据库?
  • android.database.sqlite.SQLiteDatabase.rawQuery()不使用SQLite datetime()函数更新DATETIME列
  • 如何在Android中使用SQLite实现最佳性能?
  • Android SQLite和数据库方案上的ORM
  • 我们刚刚发布了一个Github项目,我们用它来比较ORMLite和GreenDao与原始SQLite的性能:
    https://github.com/daj/android-orm-b​​enchmark

    该项目还允许您将内存数据库的性能与磁盘上的性能进行比较。

    标题结果是:

    GreenDao比ORMLite快得多 。 这大致是:

    • 写入大量对象的速度要快3倍。
    • 在单个表格的所有10000个条目中读取速度快50%。
    • 在单行索引读取时,速度提高2倍到3倍(尽pipe两者都非常快)。
    • 在10000条logging表中执行LIKEsearch100条logging的速度要快15倍。

    该项目包含一个天真的原始SQLite基准和优化的SQLite基准 。

    GreenDao vs 优化的原始SQLite

    • GreenDao的写入基准testing速度提高了2倍。
    • GreenDao读取基准的速度要慢25%。

    GreenDao VS优化的原始SQLite

    • GreenDao读写基准的速度降低了50%。

    有关详细结果,请参阅上面的Github存储库。

    当然,我们可能在我们的基准testing代码中存在错误…如果您发现任何请求,请修复并提交请求! 🙂

    免责声明:确保您在selectGreenDao over ORMLite之前进行自己的研究。