![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
网络库
bestans
这个作者很懒,什么都没留下…
展开
-
golang下极致性能socket开发
优化记录1. SendMessage时,一定是调用方将message转换为[]byte数据序列,避免在其他线程转换时引发并发问题2. socket写数据优化。socket写数据核心流程:message序列化->写入socket,有些socket库,存在重复拷贝的问题,基于核心流程,减少不必要的拷贝和内存分配,进行如下优化:每个连接定义一个write_buffer,用来减少tcp报文数...原创 2020-03-09 18:28:23 · 2200 阅读 · 0 评论 -
SOCKET 封包 和 解包
目标soecet收发数据封包和解包背景一般都有固定长度、固定后缀的做法,但都花里胡哨,都有各自的问题。本文采用固定长度+ 数据buffer模式,其中最简单的是用4字节int来表示长度。但这还不够,很多情况下长度可能一个byte就够用了,浪费了3个字节,本文采用动态字节数来存储长度详细方案首先读取一个字节,也就8个bit,a b c d e f g h判断a是否为0,如果是,则长度...原创 2019-11-21 19:20:20 · 1664 阅读 · 0 评论