2005年9月9日星期五

ObjectOutputStream 使用的注意 reset() 否则会OutOfMemory

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4363937
根据这个bug, 虽然我不知道Object序列化的具体机制,为什么会导致这个现象。
(可能是由于要保存写过的Object以便使用reference(Object之间的互相引用)).
但是out.writeObject(o)后加上一个out.reset(),就能解决问题。
ObjectInputStream端不用作任何修改。
否则out.writeObject(o),写了64MB(=Heap size)左右就会OutOfMemory。
这和序列化和垃圾回收有关。

-----

没有评论:

博客归档

neoedmund's shared items

我的简介

ZIP Code File