libevent 同樣採用 Reactor 模型,是極優秀的 C 語言網路庫。本文以 ping-pong 測試對比 muduo 與 libevent2 吞吐量,結果顯示 muduo 平均比 libevent2 高 18% 以上,個別情況達 70%。
自行撰寫 libevent2 ping-pong 測試程式(單執行緒),測試並發 1/10/100/1000/10000 吞吐量。
現代 CPU 單執行緒即可跑滿千兆網卡。同機測試消除網路頻寬瓶頸,純粹比較庫在相同 CPU 資源下的處理效率。

驚人結果:muduo 快 70%! 追蹤原始碼發現:
buffer.c:#define EVBUFFER_MAX_READ 4096
libevent2 每次最多讀 4096 位元組,而 muduo 讀 16384 位元組,系統呼叫效能差異巨大。

雙方同為 4KB 訊息時,muduo 平均仍快 18% 以上。
libevent2 固定 4KB 讀取上限嚴重限制吞吐量。muduo 無此限制,系統呼叫摻雜比更優,在高吞吐場景具明顯優勢。