libev 是高效能事件迴圈/事件模型的網路庫,並且包含大量新特性。
它和libevent很像,按照作者的介紹,可以作為libevent的替代者,能夠提供更高的效能。並不需要複雜的配置。
希望它的出現,能為高效能網路應用注入新鮮血液。
它的出現真是應了那句:很快,很強大。
新版的
lighttpd 2.0是
計畫使用 libev 來代替 libevent 的,從這個角度看來,這個產品是將有成熟應用的。
下面看看基於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具有更低的消耗,因此要快於libevent,在api設計問題也在結果中扮演重要的角色,當採用計時器的時候native api比emulation api更有效。儘管這使得libev處於劣勢,但它仍然要快於libevent
至於是否選擇 libev 來開始你的下乙個應用,自己決定吧。
libev官網:
文章參考:
尺取法(挑程)
這個方法就是兩個標,乙個在後,乙個在前,一般都是類似求和滿足大於某個數或者怎樣的最小個數 目前只會這樣的 前面的一直往前走,直到滿足條件,然後面的往前走,直到不滿足條件。還有就是set和map真的好用,統計元素出現的個數,可以用set。附poj 3320 1 include 2 include 3 ...
OM Shipping 不能挑庫
倉庫文員反映 om shipping transaction不能挑庫,訂單沒有hold,schedule ship date 也填寫了。挑庫時執行的併發程式,其日誌沒有提示錯誤資訊。使用者操作時,看到有個note資訊,第一次她很已快就關閉了,我沒有看到內容,第二次讓她慢些操作,每個提示都要認真看。這...
API實現分批挑庫
通過sql將資料根據特定的條件進行分組,並把每組的資料進行挑庫生成乙個物料搬運單。分批測試挑庫demo declare p attribute6 varchar2 240 null p attribute10 varchar2 240 null x return status varchar2 1 ...