Closed ericjing83 closed 2 months ago
如果是用的nbio 四层,例如 TCP, 那应用层的数据格式或者是否压缩, 应该由应用层自己处理, 你门自己封装下nbio.Conn.Write, 你门自己里面压缩一下就可以了, 这不应该让nbio这种网络框架自己实现. nbio不会提供这种功能的, 因为实在没必要.
不如应用层直接对二进制数据进行压缩, base64会造成体积膨胀, 也不利于提高压缩率
好的,感谢大佬的建议,我自己实现下二进制的数据压缩。 我测试了下gzip压缩base64数据,在最佳压缩率下,CPU占用率有明显提高,但是压缩后的base64数据占的空间仍然有75~80%左右。所以,gzip我就不准备用了。我自己实现二进制的压缩会性能更好,因为很多整数二进制的高位比特位上,有很多空余的二进制0,造成了带宽浪费。
您好大佬,
我猜,用nbio发送字符串或者文本数据的时候,如果有大量的文本字符是相同的,默认配置下,这个库会进行数据压缩,这样会减小网络传输的带宽。 我现在的生产环境下,有时候需要发送文本数据,有时候需要发送从整数转换成二进制格式的数据(比如用户ID,文档的ID等),数据是这样转换的:整数的数字-->二进制(字符1对应的ascii码是49,但是数字1转为二进制后还是1),然后从二进制-->base64,这样,最终base64格式的数据里会有大量的字符是相同的(一共只有64个字符)。我想了解下,nbio在网络传输过程中,对数据的压缩和解压缩,对于这样的base64数据也适用吗?如果能适用的话,我觉得应该会压缩效果比较好。