簡體   English   中英

Java:通過TCP讀/寫壓縮對象

[英]Java: Read/Write compressed objects over TCP

我必須通過套接字通過TCP傳輸一些記錄。 我使用了ObjectInputStreamObjectOutputStream ,它運行正常。 一個重要的想法是套接字打開一次並且必須在整個通信中保持打開,但每一方都不止一次地讀寫(因此它更像是持久連接)。

我嘗試在寫入之前壓縮對象以提高整體性能,結果非常令人鼓舞,但是,由於我使用了GZIPOutputStreamByteArrayOutputStream ,因此內存開銷過大,在某些情況下我得到OutOfMemory錯誤。

我嘗試過DeflaterOutputStream但它似乎不適合寫入對象。 有什么方法可以解決這個問題嗎?

Java序列化很方便,但在大小和CPU使用方面都相當無效。 如果您想要高性能,建議您使用完全不同的通信協議,例如基於協議緩沖區或其他輕量級的協議

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM