Java:通过TCP读/写压缩对象
我必须通过TCP套接字传输一些记录。我使用了Java:通过TCP读/写压缩对象,java,sockets,tcp,compression,objectinputstream,Java,Sockets,Tcp,Compression,Objectinputstream,我必须通过TCP套接字传输一些记录。我使用了ObjectInputStream和ObjectOutputStream,效果很好。一个关键的想法是,套接字只打开一次,并且在整个通信过程中必须保持打开状态,但每一方都要读写不止一次(因此它更像是一个持久连接) 为了提高整体性能,我尝试在编写对象之前对其进行压缩,结果非常令人鼓舞,但是,由于我使用了GZIPOutputStream和ByteArrayOutputStream,内存开销太大,在某些情况下,我从内存错误中解脱出来 我尝试了DeflaterO
ObjectInputStream
和ObjectOutputStream
,效果很好。一个关键的想法是,套接字只打开一次,并且在整个通信过程中必须保持打开状态,但每一方都要读写不止一次(因此它更像是一个持久连接)
为了提高整体性能,我尝试在编写对象之前对其进行压缩,结果非常令人鼓舞,但是,由于我使用了GZIPOutputStream
和ByteArrayOutputStream
,内存开销太大,在某些情况下,我从内存错误中解脱出来
我尝试了DeflaterOutputStream
,但它似乎不适合写入对象。
有什么方法可以解决这个问题吗?Java序列化很方便,但在大小和CPU使用方面都很无效。如果您想要高性能,建议您使用完全不同的通信协议,例如基于或其他轻量级的协议。Java序列化很方便,但在大小和CPU使用方面效率都很低。如果您想要高性能,建议您使用完全不同的通信协议,例如基于或其他轻量级的协议。您可以发布一些您正在使用的示例代码吗?您可以发布一些您正在使用的示例代码吗?