Android ContentProvider性能

sat*_*ine 15 sqlite performance android ipc

我很好奇是否有人在查询ContentProvidervia ContentResolvervs SQLiteDatabase在同一进程中查询对象时进行了任何性能测试.我猜测ContentResolver查询会传回一个通过Binder(Android IPC)与数据库通信的Cursor.这意味着如果我通过Cursor100个Binder方法调用读取100个记录的内容.我的猜测是否正确,如果是这样,那将比在同一过程中访问数据库慢得多?

小智 3

我还没有完全做到这一点。我所做的是通过 ContentProvider 或直接通过 SQLite 数据库测量多次插入的性能。我插入了大约 1000 个项目(一项一项)。通过 ContentProvider 插入要慢得多。在我的测试中几乎慢了 10%。

  • 如果您要逐一插入 1000 个项目,那么您将使用“ContentProviderOperation”并执行“batchInsert”。无论您使用什么,逐一插入 1000 个项目都会非常慢,因此我不会过多研究此基准测试。根据我的经验,“使用`ContentProvider`”和“不使用`ContentProvider`”之间的区别从来不在于执行操作的速度/效率。 (4认同)