【发布时间】:2018-04-03 02:01:45
【问题描述】:
我的 java 应用程序堆中有一个占用大约 15GB 的对象,我需要在 JVM 重新启动之间保持它的持久性。我使用 ObjectOutputStream 的 writeObject 方法在每个时间间隔将其写入磁盘上的文件。由于写入过程非常长(几分钟)并导致一些 GC 问题,我想以某种方式拆分对象以将每个部分分别保存到不同的文件中,而不是在单个文件中的单个操作中。 有没有办法做到这一点(当然,当我需要它时从文件中检索它)?
FileOutputStream fos = null;
GZIPOutputStream gos = null;
ObjectOutputStream oos = null;
try {
fos = new FileOutputStream("some_path");
gos = new GZIPOutputStream(fos);
oos = new ObjectOutputStream(gos);
oos.writeObject(myLargeObject);
oos.flush();
gos.close();
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
【问题讨论】:
标签: java garbage-collection fileoutputstream objectoutputstream