假设我获取Realm对象列表并访问结果中的所有数据(导致数据加载到内存中)。接下来,通过引用仍然存在的对象列表,我直接通过其主键获取其中一个对象。我是否正确地假设,在这种情况下,将返回对象而不必击中磁盘?如果我不再引用原始结果列表该怎么办?它可能还在记忆中吗?
只是好奇了解Realm如何在内部缓存对象,所以我不会不必要地尝试优化我的代码中的内容(例如,如果不需要的话,保留我认为我将很快再次使用的对象)。 p>
答案 0 :(得分:0)
Realm内存映射文件,只有在您实际读取对象的属性时才访问它。这意味着最近访问的数据仍将在内存中,直到操作系统必须丢弃它以释放RAM以用于其他内容,并且磁盘i / o与从Realm获取新对象并持续存在没有区别到现有的对象。