领域文件的大小如何发展?
首先:我有一个包含多个属性的realm文件,其中一个是860个条目的数组,每个数组条目又包含几个属性。 一个array-property表示条目的名称。
我观察到以下内容:
为什么array-name-property中的额外字母使得realm文件更大?
第二个观察结果:
在我看来,只要添加了一些东西(或者有更多字母的属性或添加了一个对象),786 kB的realm文件的大小就会翻倍。为什么realm-file在一个临界值处加倍,并且在添加更多内容的情况下不会线性增加?
感谢您澄清此事。
答案 0 :(得分:5)
很好地观察到了。 :-) Realm文件从大约4k开始,一旦用完了可用空间,它的大小将增加一倍。它持续翻倍直到128M,然后再增加128M。
将文件加倍并且不仅仅是线性增长的原因仅在于性能。这是动态数据结构的常用算法,可以保持加倍。
您可以使用下面提供的方法编写压缩副本,删除文件中的所有可用空间。如果您不再添加新数据,想要发送静态数据库或想要通过网络发送文件,这将非常有用。
Realm.writeCopyToURL(_:encryptionKey:)
-[RLMRealm writeCopyToURL:encryptionKey:error:]
Realm.writeCopyTo()
提到的那些阈值和算法是当前的,但可能会在将来的版本中发生变化。
希望这澄清一下?