日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

(二十)深入浅出TCPIP之epoll的一些思考

發(fā)布時間:2023/12/13 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 (二十)深入浅出TCPIP之epoll的一些思考 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Epoll基本介紹

在linux的網(wǎng)絡(luò)編程中,很長的時間都在使用select來做事件觸發(fā)。在linux新的內(nèi)核中,有了一種替換它的機制,就是epoll。相比于 select,epoll最大的好處在于它不會隨著監(jiān)聽fd數(shù)目的增長而降低效率。因為在內(nèi)核中的select實現(xiàn)中,它是采用輪詢來處理的,輪詢的fd 數(shù)目越多,自然耗時越多。并且,在linux/posix_types.h頭文件有這樣的聲明:
#define __FD_SETSIZE    1024
表示select最多同時監(jiān)聽1024個fd,當(dāng)然,可以通過修改頭文件再重編譯內(nèi)核來擴大這個數(shù)目,但這似乎并不治本。

所以先來看看二者的區(qū)別:

select的特點:select 選擇句柄的時候,是遍歷所有句柄,也就是說句柄有事件響應(yīng)時,select需要遍歷所有句柄才能獲取到哪些句柄有事件通知,因此效率是非常低。但是如果連接很少的情況下, select和epoll的LT觸發(fā)模式相比, 性能上差別不大。
這里要多說一句,select支持的句柄數(shù)是有限制的, 同時只支持1024個,這個是句柄集合限制的,如果超過這個限制,很可能導(dǎo)致溢出,而且非常不容易發(fā)現(xiàn)問題, TAF就出現(xiàn)過這個問題, 調(diào)試了n天,才發(fā)現(xiàn):)當(dāng)然可以通過修改linux的socket內(nèi)核調(diào)整這個參數(shù)。
epoll的特點:epoll對于句柄事件的選擇不是遍歷的,是事件響應(yīng)的,就是句柄上事件來就馬上選擇出來,不需要遍歷整個句柄鏈表?

總結(jié)

以上是生活随笔為你收集整理的(二十)深入浅出TCPIP之epoll的一些思考的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。