ORMLite 与纯 SQLite select 性能
ORMLite vs pure SQLite select performance
我用 ormlite 创建了数据库:
当我从 sqlite 控制台查询时:
select * from records
result is:
3520 rows returned in 87ms from: SELECT * FROM `records`
现在我在 ORMLite 中做同样的事情:
DatabaseHelper.get().getRecordsDao().queryForAll();
完成此查询大约需要 70 秒。
为什么差别这么大???
It takes around 70s for this query to finish.
很大程度上取决于您的实体及其包含的字段。如果低于 Android,通常额外的时间是内存带宽。当您执行 SQL select *
时,它只是 returns 文本。 ORMLite 处理所有列并创建成千上万个对象,这些对象对应于您实体中的所有字段。
此外,如果您还有急切加载的外部对象,则会导致调用额外的查询来充实每个其他对象。
我用 ormlite 创建了数据库:
当我从 sqlite 控制台查询时:
select * from records
result is:
3520 rows returned in 87ms from: SELECT * FROM `records`
现在我在 ORMLite 中做同样的事情:
DatabaseHelper.get().getRecordsDao().queryForAll();
完成此查询大约需要 70 秒。
为什么差别这么大???
It takes around 70s for this query to finish.
很大程度上取决于您的实体及其包含的字段。如果低于 Android,通常额外的时间是内存带宽。当您执行 SQL select *
时,它只是 returns 文本。 ORMLite 处理所有列并创建成千上万个对象,这些对象对应于您实体中的所有字段。
此外,如果您还有急切加载的外部对象,则会导致调用额外的查询来充实每个其他对象。