基准测试:libev vs libevent

阅读更多
原文: http://libev.schmorp.de/bench.html
关于libev的介绍请见:
http://titanfoot.iteye.com/blog/183364

本文主要描述基于libevent和libev的程序的结果比较。

libevent首个版本发布于2000-11-14.是高性能事件循环,支持简单的API,两种事件类型( I/O+timeout,signal+timeout),支持select,poll,epoll,kqueue等。

libev第一个版本发布于2007-11-12,也是高性能事件循环,支持八种事件类型(I/O,real time timers,wall clock timers,signals,child status changes, idle,check and prepare handlers)
它使用一种优先队列的方式管理计数器以及使用数组作为基础数据结构。对于相同事件监视器数没有人为的限制。它为libevent提供一个竞争层。
测试:
基准测试是一个很简单的示例。
libevent采用的1.3e版本,libev采用2007-11-12的beta版本,测试用例采用gcc version 4.1.3进行编译。
编译采用-O3 -fno-guess-branch-probability -g 参数优化,运行平台amd64(2G dul Opteron),Debian GNU/Linux(Linux version 2.6.21-2),都采用epoll 工作模式。
基准测试一,无超时,100和1000的活动客户端
基准测试:libev vs libevent_第1张图片
基准测试二,空闲超时,100和1000个活动客户端
基准测试:libev vs libevent_第2张图片

概要:
基准测试说明基于libev具有更低的消耗,因此要快于libevent,在api设计问题也在结果中扮演重要的角色,当采用计时器的时候native api比emulation API更有效。尽管这使得libev处于劣势,但它仍然要快于libevent



你可能感兴趣的:(Linux,Debian,活动,设计模式,GCC)