【发布时间】:2013-12-03 11:30:05
【问题描述】:
我一直在我的应用程序中使用 ORMLite,我正在考虑是否迁移到 greenDAO。
性能是该决定的重要组成部分,greenDAO's Features page 说:
对于相同的给定实体,greenDAO 插入和更新实体 速度提高 2 倍,实体加载速度提高 4.5 倍 实体比 ORMLite。
...
(数字和图表于 2011 年 10 月 23 日更新)
我认为ORMLite's config file generation 步骤应该消除运行时反射的需要。
ORMLite changlog 表明 greenDAO 基准测试是在配置文件功能发布后完成的,但 greenDAO 功能页面没有明确说明是否为测试生成了静态配置文件。
4.26: 9/26/2011 (svn r1978)
* ANDROID:添加了字段配置实用程序以避免使用注释来创建 Dao 性能问题。
从那时起也有 ORMLite 性能修复,例如
4.40:2012 年 4 月 16 日 (svn r2516)
* ANDROID:修复创建 DAO 时的大性能错误。外部字段总是使用反射而不是表配置。
谁能确认greenDAO和ORMLite之间是否还有很大的性能差异?谢谢!
【问题讨论】:
-
我预计 GreenDao 会更快,但我对最新的真实数据感到好奇。
-
如果您关心速度,为什么还要使用 ORM?
-
@AlexFu 为什么使用 ORM 会降低速度?如果有的话,开发人员可能会通过 ContentProvider 或 CursorLoader 编写草率的代码,这不会让事情变得更快。
-
@IgorGanapolsky ORM 由于增加了抽象层,往往会增加开销。直接查询数据库并直接使用该数据会更快。多少?可能不多,但仍然。另外,如果你在 Android 上开发,你肯定知道如何正确查询 ContentProvider 或数据库...
标签: android performance sqlite ormlite greendao