直列化するまえにZioOutputStreamで圧縮すればいいのでは?

それと直列化したいオブジェクトそのものを分割することも。

分割して圧縮して直列化して

取り出すときに解凍して統合する。

objは毎回破棄って?まさかSystem.gc()をつかってるわけではない?
java.lang.ref.SoftReferenceとか使って解放させた方がいいかも。