我很好奇是否有人对通过 ContentResolver
查询 ContentProvider
与在同一进程中查询 SQLiteDatabase
对象进行了任何性能测试.我猜测 ContentResolver
查询会传回一个通过 Binder (Android IPC) 与数据库通信的 Cursor。这意味着如果我通过 Cursor
读取 100 条记录的内容,将导致 100 次 Binder 方法调用。我的猜测是否正确?如果正确,那会比在同一进程中访问数据库慢得多吗?
最佳答案
我还没有完全做到这一点。我所做的是通过 ContentProvider 或直接通过 SQLite 数据库来测量多个插入的性能。 我插入了大约 1000 个项目(一个接一个)。通过 ContentProvider 插入要慢得多。在我的测试中,速度慢了近 10%。
关于Android ContentProvider 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4426616/