假设我有一个文件,其中包含很多(很可能是 100K+,可能是数百万)同一类的序列化对象。我阅读了这些对象并用它们做一些事情:
//open stream
try{
while(true) {
Object o = ois.readObject();
foo(o);
}
}catch(EOFException){
}
//close stream...
完成此操作后,已创建了大量令人不安的对象。我的问题是我无法控制这些对象,并且在 GC 决定这样做之前它们不会被释放。
有没有办法对创建的新对象的数量设置上限?例如,如果我的文件有 100K 序列化对象,有没有办法调整 readObject 机制以便使用固定大小的池?
更多细节
~100K 目标文件是许多较小文件的合并结果。这个小过程正在做的是创建一个排序的 csv 文件。