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服用,效果更佳。

    原文作者:sunnyxibei
    原文地址: https://www.jianshu.com/p/99c9bc81b7a7
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞