领域文件的大小如何发展?

iKK*_*iKK 2 objective-c realm ios

领域文件的大小如何发展?

首先:我有一个包含多个属性的realm文件,其中一个是860个条目的数组,每个数组条目又包含几个属性.一个array-property表示条目的名称.

我观察到以下情况:

  • 如果名称属性sais"Criteria_A1"(直到"Criteria_A860") - 那么领域文件是1.6 MB大
  • 如果name-property是"A1"(直到"A860") - 那么realm文件只有786 kB大

为什么array-name-property中的额外字母使得realm文件更大?

第二个观察:

  • 如果我添加更多的对象(每个对象都有一个包含860个条目的数组),那么文件大小再次变大1.6MB(无论我添加多少个对象;再次猜测到一个临界值,其中大小为tripples ...或者我错误??).

在我看来,只要添加了一些内容(一个包含更多字母的属性或添加了一个对象),786 kB的realm文件的大小就会翻倍.为什么realm-file在一个临界值加倍,并且在添加更多内容的情况下不会线性增加?

感谢您对此做出澄清.

bmu*_*unk 5

这很好观察.:-) Realm文件从大约4k开始,一旦用完可用空间,它的大小将增加一倍.它持续翻倍直到128M,然后不断增加128M.

将文件加倍而不仅仅是线性增长的原因仅在于性能.这是动态数据结构的常用算法,可以保持倍增.

您可以使用下面提供的方法编写压缩副本,删除文件中的所有可用空间.如果您不再添加新数据,想要发送静态数据库或想要通过网络发送文件,这将非常有用.

提到的那些阈值和算法是当前的,并且可能在将来的版本中改变.

希望这澄清一下?