栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

超出预期的Realm文件大小

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

超出预期的Realm文件大小

在单个事务中添加所有对象时,较大的文件大小是由于Realm的事务日志子系统与Realm的大型Blob内存分配算法之间不幸的相互作用所致。Realm的内存布局算法要求文件大小至少是Realm文件中存储的最大单个Blob大小的8倍。汇总单个事务期间所做的修改的事务日志条目将作为blob存储在Realm文件中。

在一个事务中添加40,000个对象时,最终只有一个事务日志条目,大小约为5MB。这意味着文件的大小必须至少为40MB才能存储。(我不太确定它最终会变成两倍大小的结果。可能是斑点的大小沿线的某个部分四舍五入为2的幂…)

当您在40,000个事务中添加一个对象时,仅此一次它只有100个字节左右的大小时,仍然会得到一个事务日志条目。发生这种情况的原因是,当Realm提交事务时,它先尝试回收未使用的事务日志条目,然后再为新条目分配空间。由于Realm文件未在其他位置打开,因此在执行每个新的提交时都可以回收先前的条目。

realm / realm-core#2343跟踪如何改进Realm存储事务日志条目的方式,以避免您看到的大量过度分配。

现在,我的建议是拆分两种方法之间的差异,并为每个写入事务添加对象组。这将通过增加提交次数来降低性能,但是会通过减小创建的最大事务日志条目的大小来减少内存布局算法的影响。通过快速测试,每提交2,000个对象将产生大约4MB的文件大小,而比在单独的写入事务中添加每个对象要快得多。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/613998.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号