我可以确定Realm数据库文件中的实例数吗?

时间:2017-07-01 01:19:04

标签: java android realm

由于Realm DB的大小超过1 GB,有几个用户无法打开我的应用。我相信这是由于未封闭的实例从未被压缩(可能是线程问题)。我能够从设备中提取领域文件并使用Realm Browser进行检查。但是,我只找到大约10k的记录。有没有办法让我分析文件以确定数据库中有多少个实例?

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

1 个答案:

答案 0 :(得分:1)

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

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

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

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