Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:通过TCP读/写压缩对象_Java_Sockets_Tcp_Compression_Objectinputstream - Fatal编程技术网

Java:通过TCP读/写压缩对象

Java:通过TCP读/写压缩对象,java,sockets,tcp,compression,objectinputstream,Java,Sockets,Tcp,Compression,Objectinputstream,我必须通过TCP套接字传输一些记录。我使用了ObjectInputStream和ObjectOutputStream,效果很好。一个关键的想法是,套接字只打开一次,并且在整个通信过程中必须保持打开状态,但每一方都要读写不止一次(因此它更像是一个持久连接) 为了提高整体性能,我尝试在编写对象之前对其进行压缩,结果非常令人鼓舞,但是,由于我使用了GZIPOutputStream和ByteArrayOutputStream,内存开销太大,在某些情况下,我从内存错误中解脱出来 我尝试了DeflaterO

我必须通过TCP套接字传输一些记录。我使用了
ObjectInputStream
ObjectOutputStream
,效果很好。一个关键的想法是,套接字只打开一次,并且在整个通信过程中必须保持打开状态,但每一方都要读写不止一次(因此它更像是一个持久连接)

为了提高整体性能,我尝试在编写对象之前对其进行压缩,结果非常令人鼓舞,但是,由于我使用了
GZIPOutputStream
ByteArrayOutputStream
,内存开销太大,在某些情况下,我从内存错误中解脱出来

我尝试了
DeflaterOutputStream
,但它似乎不适合写入对象。
有什么方法可以解决这个问题吗?

Java序列化很方便,但在大小和CPU使用方面都很无效。如果您想要高性能,建议您使用完全不同的通信协议,例如基于或其他轻量级的协议。

Java序列化很方便,但在大小和CPU使用方面效率都很低。如果您想要高性能,建议您使用完全不同的通信协议,例如基于或其他轻量级的协议。

您可以发布一些您正在使用的示例代码吗?您可以发布一些您正在使用的示例代码吗?