ソケットを介して TCP 経由でいくつかのレコードを転送する必要があります。と を使用ObjectInputStream
しObjectOutputStream
ましたが、うまくいきました。重要な考え方の 1 つは、ソケットが一度開かれ、通信全体を通して開いたままにしておく必要がありますが、両側で複数回読み取りと書き込みを行うことです (つまり、永続的な接続に似ています)。
全体的なパフォーマンスを向上させるために、オブジェクトを書き込む前にオブジェクトを圧縮しようとしましたが、結果は非常に有望でしたが、 と を使用GZIPOutputStream
しByteArrayOutputStream
たため、メモリ オーバーヘッドが大きすぎ、場合によっては OutOfMemory エラーが発生します。
試してみDeflaterOutputStream
ましたが、オブジェクトの書き込みには適していないようでした。この問題を解決する方法はありますか?