• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            S.l.e!ep.¢%

            像打了激速一樣,以四倍的速度運轉(zhuǎn),開心的工作
            簡單、開放、平等的公司文化;尊重個性、自由與個人價值;
            posts - 1098, comments - 335, trackbacks - 0, articles - 1
              C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

            EPOLL的ET和LT模式

            Posted on 2010-11-06 18:35 S.l.e!ep.¢% 閱讀(503) 評論(0)  編輯 收藏 引用 所屬分類: epoll

            LT(level triggered)是缺省的工作方式,并且同時支持block和no-block socket.在這種做法中,內(nèi)核告訴你一個文件描述符是否就緒了,然后你可以對這個就緒的fd進(jìn)行IO操作。如果你不作任何操作,內(nèi)核還是會繼續(xù)通知你的,所以,這種模式編程出錯誤可能性要小一點。傳統(tǒng)的select/poll都是這種模型的代表.

            ET (edge-triggered)是高速工作方式,只支持no-block socket。在這種模式下,當(dāng)描述符從未就緒變?yōu)榫途w時,內(nèi)核通過epoll告訴你。然后它會假設(shè)你知道文件描述符已經(jīng)就緒,并且不會再為那個文件描述符發(fā)送更多的就緒通知,直到你做了某些操作導(dǎo)致那個文件描述符不再為就緒狀態(tài)了(比如,你在發(fā)送,接收或者接收請求,或者發(fā)送接收的數(shù)據(jù)少于一定量時導(dǎo)致了一個EWOULDBLOCK 錯誤)。但是請注意,如果一直不對這個fd作IO操作(從而導(dǎo)致它再次變成未就緒),內(nèi)核不會發(fā)送更多的通知(only once),不過在TCP協(xié)議中,ET模式的加速效用仍需要更多的benchmark確認(rèn)。

            struct epoll_event struEvent;
            struEvent.events = EPOLLIN | EPOLLOUT | EPOLLET;
            struEvent.data.fd = hSocket;
            ??? epoll_ctl(m_hEpoll, EPOLL_CTL_ADD, hSocket, &struEvent);
            如果將監(jiān)聽套接字m_hListenSocket和epoll關(guān)聯(lián)起來,則代碼如下:
            struct epoll_event struEvent;
            struEvent.events = EPOLLIN | EPOLLET;
            struEvent.data.fd = m_hListenSocket;
            ??? epoll_ctl(m_hEpoll, EPOLL_CTL_ADD, m_hListenSocket, &struEvent);
            如果想使用LT模式,直接把事件的賦值修改為以下即可,也許這就是缺省的意義吧。
            struEvent.events = EPOLLIN | EPOLLOUT; //用戶TCP套接字
            struEvent.events = EPOLLIN;???? //監(jiān)聽TCP套接字
            不過,通過測試確定,這兩種模式的性能差距還是非常大的,最大可以達(dá)到10倍。100個連接的壓力測試,其他環(huán)境都相同,LT模式CPU消耗99%、ET模式15%。


            本文來自CSDN博客,轉(zhuǎn)載請標(biāo)明出處:http://blog.csdn.net/borefo/archive/2009/09/22/4577104.aspx

            99精品伊人久久久大香线蕉| 久久亚洲精品中文字幕三区| 久久久精品视频免费观看| 国产欧美久久久精品| 久久久久国色AV免费看图片| 久久激情亚洲精品无码?V| 午夜视频久久久久一区 | 久久这里有精品视频| 免费无码国产欧美久久18| 久久久久亚洲AV无码麻豆| 成人精品一区二区久久久| 国产高潮久久免费观看| 免费久久人人爽人人爽av| 久久精品国产99国产电影网| 少妇被又大又粗又爽毛片久久黑人 | 国产一区二区三区久久精品| 亚洲国产天堂久久综合网站| 久久狠狠一本精品综合网| 午夜精品久久久久久久久| 久久久久国产一级毛片高清版| 中文字幕无码av激情不卡久久| av无码久久久久久不卡网站| 综合久久精品色| 狠狠人妻久久久久久综合蜜桃| 国产三级久久久精品麻豆三级| 欧美粉嫩小泬久久久久久久| 丁香五月网久久综合| 国产成人精品三上悠亚久久| 久久久久无码专区亚洲av| 日本精品久久久中文字幕 | 国产精品久久久久天天影视| 2019久久久高清456| 久久精品国产99国产精品| 国产精品久久久久久一区二区三区 | 久久精品国产只有精品66| 波多野结衣中文字幕久久| 久久伊人精品一区二区三区| 久久综合九色综合欧美就去吻| 国产午夜精品久久久久九九电影| 国产欧美久久久精品| 国产精品久久久久AV福利动漫|