Room和realm数据插入性能对比

看到谷歌开发者公众号推送了一遍“Android O迁移测试 : Room”的文章。心血来潮,特想试一下这个新的构建组件。

其实ORM框架早已有之,GreenDAO和ORMLite也都很受欢迎,这次谷歌官方钦定了一个自己的ORM框架:Room,用法上几乎和其他框架差不太多。

在数据库的选项上,最近一直很心水realm,性能和加密都很不错,所以,就拿realm和官方的Room对比测试,看一下二者在数据插入时的性能表现。

插入数据(1000条)

E/MainActivity: Room 测试写入数据开始
E/MainActivity: Room 写入数据完成: 64
E/MainActivity: realm 测试写入数据开始
E/MainActivity: realm 写入完成: 46

更新数据(1000条)

E/MainActivity: Room 测试写入数据开始
E/MainActivity: Room 写入数据完成: 41
E/MainActivity: realm 测试写入数据开始
E/MainActivity: realm 写入完成: 15

插入数据(10000条)

E/MainActivity: Room 测试写入数据开始
E/MainActivity: Room 写入数据完成: 2727
E/MainActivity: realm 测试写入数据开始
E/MainActivity: realm 写入完成: 3004

更新数据(10000条)

E/MainActivity: Room 测试写入数据开始
E/MainActivity: Room 写入数据完成: 3238
E/MainActivity: realm 测试写入数据开始
E/MainActivity: realm 写入完成: 1614

插入数据(1000000条)

E/MainActivity: Room 测试写入数据开始
E/MainActivity: Room 写入数据完成: 28435
E/MainActivity: realm 测试写入数据开始
E/MainActivity: realm 写入完成: 33157

更新数据(1000000条)

E/MainActivity: Room 测试写入数据开始
E/MainActivity: Room 写入数据完成: 30766
E/MainActivity: realm 测试写入数据开始
E/MainActivity: realm 写入完成: 17274

由此可以看出,数据插入,二者的表现差不太多,但是在数据更新时,realm的效率明显更高,时间基本上是Room的一半。

在API的封装上,Room和Realm还是有点距离,realm的API给人的感觉比较优雅,所有的操作可以一路链式操作,而Room,还是需要自己去封装增删改查的方法,毕竟Room还是基于SQLite。

但是,Room的性能基本上也能满足我的需要,而且,配合着LiveData和LifeCycle服用,效果更佳。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容