參考了這篇文章:
http://www.cnblogs.com/Lifehacker/p/whats_the_difference_between_libevent_and_libev_chinese.html
兩個庫都是為異步io調度而設計,在Linux上都是使用epoll機制,在FreeBSD上則都是kqueue,還有諸如此類的很多相通之處。
libev的誕生,是為了修復libevent設計上的一些錯誤決策。
例如,全局變量的使用,讓libevent很難在多線程環境中使用。
watcher結構體很大,因為它們包含了I/O,定時器和信號處理器。
libev試圖改進所有這些缺陷,例如避免使用全局變量,轉而在所有函數中,使用上下文變量來代替。每個事件類型,使用單獨的watcher類型(一個I/O watcher在64位機器上,只需要56字節。而libevent需要136字節)。允許額外的事件類型,例如基於掛鍾的計時器,或者單調時間,線程內中斷,准備並檢查watchers來嵌入其他事件循環,或者被用於其他事件循環來嵌入。
額外的組件如HTTP和DNS服務器,因為拙劣的實現品質和安全問題而備受折磨。
定時器不精確,而且無法很好地處理時間跳變。
一句話總結,libev嘗試追隨UNIX工具箱哲學,一次只干一件事,每次都做到最好。