繁体   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