从领域限制:https://realm.io/docs/objc/latest/#current-limitations
“任何单个Realm文件都不能大于您的应用程序在iOS中将允许映射的内存量-这会因设备而异,并且取决于该时间点的内存空间碎片程度(为此存在一个开放的雷达问题:rdar:// 17119975)。如果需要存储更多数据,可以将其映射到多个Realm文件中。”
这是否意味着单个Realm文件始终存储在RAM中?
还是意味着地址空间应该足够大?
这句话很令人困惑...
最佳答案
由于Realm在后台使用mmap
,因此它当前依赖于address space程序来拥有一个连续的无人认领的地址块,该地址块大于Realm文件的大小。这与实际的可用内存量不同,因为可以从地址空间的许多不同部分对内存进行free
d编码,从而留下大量未使用的内存,但是没有足够的大块地址空间来对Realm文件进行mmap
。