IOBuf
IOBuf
相似于 linux
中的sk_buf
,是一个网络编程中的常见概念,用一个物理上的非间断空间虚构出逻辑上的间断空间,同时利用援用计数防止拷贝复制。
空间布局如右所示:headRoom
+ data
+ tailRoom
,因而能够prepend() && append()
。
同时通过多个 IOBuf
chain
连接成逻辑上的间断空间,通过 unlink
开释。
同时兼容了 iovec
调用,充分利用多个小块读写。
EventBase
基于 IOBuf
和RequestCtx
,引入了和 libevent
相似的事件循环模型。
教训
为了 P99,肯定要把 CPU 密集事件挪动到专门的 CPU 密集操作池中,避免拖慢 IO 事件。