高性能网络库Libevent初探 libevent是一个基于事件触发的轻量级高性能开源网络库,很多著名的软件如Chromium、memcached、Netchat等都是基于libevent开发的。
之所以受到如此多的关注和青睐,主要是libevent具有的一些显著亮点: 1) 事件驱动(event-driven),超高的性能; 2) 轻量级,专注于网络,短小精干; 3) 跨平台,可以在linux、bsd、mac和windows环境中根据不同环境自动选择恰当的io多路复用技术; 4) 支持定时器、信号、io三种方式驱动; libevent的最新release是2.0.21,本文基于此版本。
Libevent由以下几大部分组成: 1) 事件管理包括IO(socket)、定时器、信号三种事件; 2) evbuffer,对缓存管理封装; 3) evdns,异步DNS查询库; 4) evhttp,基于libevent的一个轻量级http实现,实现了服务器和客户端,线程不安全,因此性能上有所局限。
使用libevent典型的应用流程如下: event_init() = |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|