【问题标题】:Can I determine the number of instances inside a Realm database file?我可以确定 Realm 数据库文件中的实例数吗?
【发布时间】:2017-07-03 16:25:56
【问题描述】:

由于 Realm DB 的大小超过 1 GB,一些用户无法打开我的应用程序。我相信这是由于从未压缩的未关闭实例(可能是线程问题)。我能够从设备中提取领域文件并使用领域浏览器对其进行检查。但是,我只找到大约 10k 条记录。我有什么方法可以分析文件以确定里面有多少个数据库实例?

我在 Realm for iOS 中读到过,数据库文件不能大于分配给应用程序的内存量。同样的限制是否适用于 Android/Java?这是我的预感,但我还没有确认。 https://realm.io/docs/objc/latest/#general-limits

【问题讨论】:

    标签: java android realm


    【解决方案1】:

    如果应用程序关闭,文件本身内只有一个 Realm 实例,即最新的。

    大小问题体现在正在运行的应用程序中,我们必须跟踪最旧和最新版本之间的差异。如果旧版本从未在正在运行的应用程序中发布,则会导致文件大小膨胀。

    这成为一个问题的原因是 Realm 不会再次自动释放这个空间,而是保留它以备将来需要。手动调用Realm.compactRealm(config) 将删除此空间。我们正在添加自动执行此操作的功能:https://github.com/realm/realm-java/issues/3739

    关于大小限制:Realm memory-map 数据库文件。实际上,这意味着一旦文件达到约 400 MB,旧的 32 位设备将拒绝打开它,但它会根据设备略有不同。 64 位设备没有实际限制。过去约 3 年的大多数新设备都是 64 位设备。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-14
      • 1970-01-01
      • 2017-11-30
      相关资源
      最近更新 更多