libevent bufferevent 水位理解

本文详细解析了bufferevent中的缓存水位机制,包括读缓存与写缓存的工作原理。阐述了低水位与高水位值在读写缓存中的作用,以及如何通过调整这些值来优化网络数据的收发效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


读缓存水位分析:

1、  bufferevent用于数据接收和发送缓存。

2、  bufferevent内建了两个struct bufferevent对象,分别用于发送和接收缓存。

3、  水位值用于实现对缓存区的管理。

4、  从网络模型分析bufferevent会自动从socket读取数据缓存在bufferevent的接收缓存中。

5、  当bufferevent存储的数据到达低水位值时读回调函数触发。

6、  低水位是0时,只要bufferevent从网络收数据就会触发读回调,也即数据可以立即被用户读走。

7、  读回调函数常规操作是从bufferevent中读取数据(用户读取数据)。

8、  但是当bufferevent读取的速度大于用户从bufferevent读取速度是,bufferevent中的数据量会达到高水位值。

9、  当bufferevent缓存数据量达到高水位值时,bufferevent会停止从网络接收数据。

10、当用户从bufferevent中读取了数据使水位值低于高水位值时,bufferevent又可以从网络中接收新的数据。

 

写缓存水位分析:

1、  用户先将数据写入到bufferevent发送缓存。

2、  当bufferevent发送缓存存储的数据量达到低水位时,回调函数将被触发。

3、  当低水位为0时,bufferevent缓存为空,写进数据时写回调被触发。

4、  回调函数的常规操作是将bufferevent发送缓存数据写到网络中。

5、  当用户写入发送缓存数据快于回调函数将数据写到网络中时,水位值将达到高水位值。

6、  高水位值没有使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值