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 处理所有列并创建成千上万个对象,这些对象对应于您实体中的所有字段。

此外,如果您还有急切加载的外部对象,则会导致调用额外的查询来充实每个其他对象。