我正在尝试通过套接字发送大量数据(基本上是转换为字符串的数据记录),这会降低程序其余部分的性能。是否可以使用gzip等压缩数据并在另一端解压缩?
答案 0 :(得分:2)
是。实现此目的的最简单方法是使用古老的zlib
库。
compress()
和uncompress()
实用程序功能可能就是您所追求的目标。
答案 1 :(得分:1)
是的,但压缩和减压也需要付出代价。
您可能需要考虑使用其他进程或线程来处理数据传输;这可能比仅仅压缩更难,但是当数据负载增加n倍时,它会更好地扩展。
答案 2 :(得分:1)
是的,这是可能的。 zlib是一个用于执行此类压缩和解压缩的库。但是,通过以二进制格式而不是字符串序列化数据记录可能会更好。应该提高性能,甚至可能比使用压缩更好。
答案 3 :(得分:0)
当然你可以做到。发送二进制数据时,您必须处理平台的endiannes。
但是,您确定通过压缩发送的数据可以解决性能问题吗?您还将有其他步骤(压缩/解压缩,可能解决endiannes问题)。
考虑如何通过套接字进行通信。您使用同步或异步通信吗?如果你同步读写,那么你可以感受到性能损失......
答案 4 :(得分:0)