libevent学习笔记
来源:互联网 发布:淘宝去广告 编辑:程序博客网 时间:2024/05/19 13:22
1、libevent处理3种事件,超时,io与信号
超时也即定时器是通过min-heap来实现的
其他io与信号都是通过系统的I/O demultiplexer来实现的,一般就是epoll(linux)
2、为了提高性能,libevent对时间进行了缓存,也即在清空缓存之前的所有add的超时事件都是以这个缓存时间为依据的。
如果这次的循环时间之心过长,这会导致在这段时间内add的事件会提前执行(I/O demultiplexer等待之前会清空缓存,不会有问题,但是当超时的回调占用太长的cpu,如超过一秒,在这个回调过程中add的超时事件就会提前1秒执行)。造成相当诡异的问题。
3、libevent的epoll没有指定模式(level triggered与edge-triggered),也即默认用的lt模式
0 0
- libevent学习笔记
- Libevent库学习笔记
- 学习笔记--libevent min_heap
- libevent学习笔记
- libevent学习笔记 -evbuffer
- Libevent学习笔记
- libevent 学习笔记 一
- libevent 学习笔记 二
- libevent 学习笔记 三
- libevent 学习笔记 四
- libevent 学习笔记 一
- libevent学习笔记
- libevent学习笔记
- libevent学习笔记 -1 设置 Libevent库
- libevent学习笔记1:牛刀小试
- libevent学习笔记 一、基础知识
- libevent学习笔记--setvbuf()函数
- Libevent源代码学习笔记1
- Matlab中的cell类型
- 从注册表中查询某一键值对
- 常用的WebService调用
- LeetCode - Single Number II分析
- 系统性能调优(6)----寻找性能瓶颈心得
- libevent学习笔记
- 回调函数
- Eclipse调试框架的学习与理解一
- .net 数组
- 关于Office OCR的几个注意的地方
- iOS---数据库
- SURF 与 SIFT的共同点与区别
- NodeJS 实现类是express路由
- sicily 1090.Highways