跳至內容

Libev

出自Taiwan Tongues 台語維基
這是此頁批准,以及是最近的修訂。

libev是一个全功能佮高性能的事件循環庫,libev 參考並模仿矣 libevent 和 perl 模塊 Event。伊用佇咧 GNU 虛擬專用乙太網、rxvt-unicode、auditd、Deliantra MORPG 侍服器佮客戶捀猶閣有真濟其他的程序。node . js 捌1875入去矣 libev,這馬換為著 libuv。

libev 由 Marc Lehmann 和 Emanuele Giaquinta 創建,以 GPLv 二協議發布。

佮 libevent 的區別

佇設計理念,創建 libev 是為著改進 libevent 當中的一寡架構決策。比如講:

  • 全局變量的使用予佇加執行緒環境中真歹安全地使用 libevent。
  • 觀察器結構誠大,因為𪜶將輸入 / 輸出、時間佮信號處理程序合二為一。
  • 另外的組件 ( 如 http 和 dns 侍服器 ) 的實現質量差真濟。
  • 計時器不精確,袂當足好處理的時間就跳跳。

Libev 的解決方案是:

  • 使用全局變量,是逐个函數攏有一个循環上下文。
  • 對每一種事件類型使用細的觀察器 ( 一个 I / O 觀察器佇咧 x 八十六 \ _ 六十四機器上使用五十六位元組,咧用 libevent 的話使用一百三十六位元組 )。
  • 無咧 http 庫等組件。libev 的功能足少的。
  • 允准閣較濟事件類型,比如講基於 wall clock 或者是單調時間的定時器、執行緒間中斷等等。

閣較簡單仔講,libev 的設計遵循 UNIX 工具箱的哲學,雖然好的代誌干焦做一件代誌。

libev 的缺陷

libev 無支持 Windows 的 IOCP。

參考資料