Windows环境下IOCP和SELECT模型性能比较
生活随笔
收集整理的這篇文章主要介紹了
Windows环境下IOCP和SELECT模型性能比较
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在大量客戶端連接的情況下,IOCP模型應該是具有先天優勢的,首先是每次調用時不需要傳入socket列表,其次是他在通知時就已經完成了IO操作,節省了系統調用。
道理是這么個道理,然而在實際應用過程當中,在少量連接的情況下,例如單連接,IOCP的吞吐性能可能遠不及SELECT模型。
具體的項目是一個VPN軟件,測試環境是 i7 9700 16G內存 56G InfiniBand直連網絡。在使用SELECT模型時單線程測速能達到4~7Gbps以上,而IOCP模型僅僅只有1.2Gbps左右。
搜索了一些資料,國外友人在16年前就發現少量連接時IOCP性能非常差
https://alt.winsock.programming.narkive.com/cs0WvuXh/does-iocp-provide-real-performance-gain
另外一個paper顯示在大量連接的情況下,IOCP與EPOLL不分伯仲(沒有測試select)
https://www.slideshare.net/sm9kr/iocp-vs-epoll-perfor
?
總結
以上是生活随笔為你收集整理的Windows环境下IOCP和SELECT模型性能比较的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 测试x86cpu的指令集
- 下一篇: 让Windows控制台应用程序支持VT1