我正在考虑在制作应用中使用Realm.io作为我的ORM。
据我所知,RealmResults对象存储在BackendStore(磁盘)而不是RAM中,因为RealmResult只是保存在数据库中的真实对象的代理。
所以我的问题是,鉴于Java对象存储在RAM中,读取RealmObject的字段与从普通Java对象读取它的速度一样快。我的应用程序中有很多读数,我担心这会影响响应能力。
答案 0 :(得分:3)
这取决于你的比较。 RealmResults
是查询的结果,而Realm不会复制对象 - 与传统的ORM相反。 Realm只会在需要时获取对象,而典型的ORM会将对象复制到内存中。将对象从SQLite复制到普通Java对象受I / O性能的约束。
访问RealmObject
可能比访问普通Java对象要慢。但是普通的Java对象并不是持久的。 Realm提供了一个内存中选项,它与普通Java对象进行了更直接的比较。内存中领域的属性为Plain对象:当应用程序关闭时,您会丢失数据。
因此,如果您花费大量时间从SQLite复制对象以获得快速的内存中对象,那么整体上可能会更慢。