- 1
- 2
- 3
- 4
- 5
libevent的缓冲与环形缓冲区内存的连续利用.docx
资料介绍
libevent 的缓冲与环形缓冲区:内存的连续利用
缓冲区的两种实现
在网络编程里,缓冲区是核心数据结构。libevent 的 evbuffer 用链表式的缓冲实现,而很多高性能服务会用环形缓冲区。两者的设计思路和适用场景不同。
这篇文章讲讲缓冲区的实现原理,重点是环形缓冲区和 evbuffer 的差异,以及如何在 libevent 场景下使用它们。
evbuffer 的链式结构
libevent 的 evbuffer,采用链式(链表)结构管理内存。
evbuffer 内部用 evbuffer_chain 链节点,每个链节点是一段内存。数据分散在多个链节点中,通过链表组织。
链式结构的优点是灵活:添加数据时分配新链节点,移除数据时释放链节点,支持零拷贝引用。
缺点是数据可能不连续,读取时可能要跨多个链节点(用 iovec 处理)。
环形缓冲区
环形缓冲区(Circular Buffer)是另一种实现,用固定大小的数组模拟循环。
它有一个读指针和一个写指针。数据写入写指针处,读到读指针处,指针到达数组末尾回绕到开头,形成环形。
环形缓冲区的优点是:内存连续、分配固定、读取方便(一次连续读取)、无碎片。
部分文件列表
| 文件名 | 大小 |
| libevent的缓冲与环形缓冲区内存的连续利用.docx | 37K |
最新上传
-
yahuang001 打赏3.00元 3天前
-
yahuang001 打赏1.00元 3天前
-
zhongshaoxiong 打赏3.00元 3天前
-
他山之石可攻玉 打赏60.00元 3天前
用户:烟雨
-
江岚 打赏210.00元 3天前
用户:潇潇江南
-
江岚 打赏100.00元 3天前
-
21ic下载 打赏310.00元 3天前
用户:gsy幸运
-
21ic下载 打赏310.00元 3天前
用户:zhengdai
-
21ic下载 打赏310.00元 3天前
用户:江岚
-
21ic下载 打赏210.00元 3天前
用户:潇潇江南
-
21ic下载 打赏60.00元 3天前
用户:他山之石可攻玉
-
21ic下载 打赏60.00元 3天前
用户:烟雨
-
21ic下载 打赏60.00元 3天前
用户:w178191520
-
21ic下载 打赏60.00元 3天前
用户:w993263495
-
21ic下载 打赏110.00元 3天前
用户:xzxbybd
-
21ic下载 打赏60.00元 3天前
用户:zq_1943
-
21ic下载 打赏20.00元 3天前
用户:kk1957135547
-
21ic下载 打赏20.00元 3天前
用户:sun2152
-
21ic下载 打赏20.00元 3天前
用户:铁蛋锅
-
21ic下载 打赏20.00元 3天前
用户:xuzhen1
-
21ic下载 打赏20.00元 3天前
用户:w1966891335
-
21ic下载 打赏35.00元 3天前
用户:有理想666
-
21ic下载 打赏15.00元 3天前
用户:nuaanuaa111
-
21ic下载 打赏20.00元 3天前
用户:liqiang9090
-
21ic下载 打赏15.00元 3天前
用户:ningmengge
-
21ic下载 打赏10.00元 3天前
用户:mulanhk
-
21ic下载 打赏5.00元 3天前
用户:asys
-
21ic下载 打赏10.00元 3天前
用户:舞蹈荀彧
-
21ic小能手 打赏5.00元 3天前
资料:磁编码器开源方案
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
江岚 打赏20.00元 3天前
-
江岚 打赏50.00元 3天前
-
江岚 打赏20.00元 3天前
-
江岚 打赏10.00元 3天前
-
21ic小能手 打赏10.00元 3天前
-
21ic小能手 打赏8.00元 3天前
-
21ic小能手 打赏8.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏3.00元 3天前




全部评论(0)