我遇到领域数据库已超过1GB。当我紧凑时(当应用程序启动时),它下降到大约300Kb。
我做了我的研究,人们提到我必须关闭我的领域数据库。但是在访问领域的所有线程中,我都会执行以下操作:
try (Realm realm = Realm.getDefaultInstance())
{
...
...
...
}
catch (Exception ex)
{
//put in the log here
}
我的大多数数据都是缓存的,所以只加载一次(除非我需要保存到数据库并同步缓存的数据,然后我打开领域 - 经常安静)。
所以,我的问题是,try (Realm realm = Realm.getDefaultInstance())
是否足够好?或者我应该像try {...} catch{...} finally { realm.close(); }
那样做?
Realm realm = Realm.getDefaultInstance();
try
{
...
...
...
}
catch (Exception ex)
{
//put in the log here
}
finally
{
realm.close();
}
目前,我每次启动应用程序时都会调用compactRealm()。虽然它很慢,但设法将大小减小到大约300Kb。
谢谢!
PS。 我无法将 Realm 实例存储为类实例,因为大部分操作都是在线程内完成的(保存新数据,与缓存同步数据等)。