select,epoll的比较
生活随笔
收集整理的這篇文章主要介紹了
select,epoll的比较
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
機制:
select:只支持水平觸發(數據不處理完無限通知)
epoll:支持水平觸發和邊緣觸發(僅通知一次)
?
單進程監控FD個數
select: 由FD_SETSIZE設置,默認值是2048。在大量連接的情況下明顯不足。
epoll: 和內存有關,1G內存10W個,一般都夠用。
?
內核監控事件的策略
select: 順序遍歷監控句柄數組,在監控大量連接句柄且數據通信非活躍狀態下效率低下。
epoll: 活躍的句柄通過callback函數進行事件自主通知,資源消耗過小;
?
程序中獲取事件句柄的方式
select: 返回整個監控句柄數組,只能順序遍歷查找里面有事件觸發的句柄
epoll: 返回的數組就是所有已經觸發事件的句柄。
?
數據傳遞
select: 內核態和用戶態之間的數據傳遞需要進行copy
epoll: mmap映射數據空間,免去copy操作
?
轉載于:https://www.cnblogs.com/hdflzh/p/4034848.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的select,epoll的比较的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于EOF,转自新浪微博
- 下一篇: 黑马程序程序员基础测试(二)