Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 减少领域文件维度_Java_Android_Realm_Realm Java - Fatal编程技术网

Java 减少领域文件维度

Java 减少领域文件维度,java,android,realm,realm-java,Java,Android,Realm,Realm Java,我在写入和修改数千条记录时出错: 无法恢复的错误。mmap()失败:内存大小不足 我发现这是由于事务在设备内存中所占的空间。 因此,我将单个大事务拆分为较小的事务,现在不再出现错误。但是我注意到default.realm文件越来越大。 我了解到,如果应用程序执行大量事务,这是正常的,因为每个事务也会在存储数据的同一文件中写入日志 有没有办法清除不必要的数据? 我已经在应用程序启动时使用了Realm.compactRealm,但这似乎无法释放所有未使用的空间。这主要发生在非循环后台线程上的打开的R

我在写入和修改数千条记录时出错:

无法恢复的错误。mmap()失败:内存大小不足

我发现这是由于事务在设备内存中所占的空间。 因此,我将单个大事务拆分为较小的事务,现在不再出现错误。但是我注意到default.realm文件越来越大。 我了解到,如果应用程序执行大量事务,这是正常的,因为每个事务也会在存储数据的同一文件中写入日志

有没有办法清除不必要的数据?
我已经在应用程序启动时使用了Realm.compactRealm,但这似乎无法释放所有未使用的空间。

这主要发生在非循环后台线程上的打开的Realm实例从未关闭时。如果您执行类似于
Realm.getDefaultInstance().someMethod()
的操作,这非常常见。我总是执行
try(Realm Realm=Realm.getDefaultInstance()){…}
它应该以这种方式自动关闭是的,是的。也许你真的只有2GB以上的数据?