青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Windows下兩種iocp實(shí)現(xiàn)的差距

 

 

之前幾天說過,因?yàn)榻?jīng)典iocp實(shí)現(xiàn)(以下簡稱經(jīng)典實(shí)現(xiàn))多個(gè)io線程綁定在一個(gè)iocp上,這樣內(nèi)部管理了iocp隊(duì)列的處理,內(nèi)部決定是不是需要線程切換,我上次修改的一個(gè)版本(以下簡稱實(shí)現(xiàn)2),用了多個(gè)io線程,每個(gè)iocp隊(duì)列僅綁定一個(gè)io線程,一組用戶共享一個(gè)io線程,這和經(jīng)典的多線程epoll模型的做法是很相似的,這樣每個(gè)io線程是可以獨(dú)立控制了,但理論上這種做法沒有發(fā)揮iocp自動管理線程切換的優(yōu)勢,昨晚沒事用這兩種實(shí)現(xiàn)分別做了個(gè)echoserver測試了一下,這兩套實(shí)現(xiàn)代碼僅40行左右不同,其他完全一樣,效果真的是差很多,測試僅用一個(gè)進(jìn)程模擬了4000個(gè)客戶端,每秒1個(gè)包,先看實(shí)現(xiàn)2的,cpu14%2個(gè)io線程,1個(gè)accept線程,1個(gè)主線程,其他線程都沒干活閑置。

 

Cpu

Memory

Threads

handles

14

40088k

8

4236

 

再看經(jīng)典實(shí)現(xiàn),cpu幾乎一直是0%2個(gè)io線程,accept也是在io線程里面處理,其他跟實(shí)現(xiàn)2一樣,測試客戶端也一樣。

Cpu

Memory

Threads

handles

0

39244k

7

4336

 

說實(shí)話,在測試之前我也沒想到有這么大的差距,經(jīng)典實(shí)現(xiàn)就是1.2w個(gè)連接連上來還是這樣,就是內(nèi)存占用多一點(diǎn):

Cpu

Memory

Threads

handles

0

112068k

7

12280

 

習(xí)慣上總有人喜歡拿epolliocp來對比,我到現(xiàn)在也沒看到真正公平的對比,就算是相對公平的也沒見到,因?yàn)樵谖铱磥恚獙Ρ扔布?yīng)該是一樣的,os都應(yīng)該是最新的,最重要的是,server端程序應(yīng)該都是發(fā)揮了各自優(yōu)勢的,如果拿我這里的實(shí)現(xiàn)2去代表iocp的水平和epoll對比,勢必造成比epoll差很多的結(jié)果,然而這顯然是不正確的。

 

epoll經(jīng)典多線程模式實(shí)際實(shí)現(xiàn)和實(shí)現(xiàn)2很相似,理論上也有類似的線程切換問題,不知道效率怎樣。

 

 

Posted on 2011-02-01 10:48 袁斌 閱讀(12011) 評論(3)  編輯 收藏 引用 所屬分類: c++網(wǎng)絡(luò)

Feedback

# re: Windows下兩種iocp實(shí)現(xiàn)的差距[未登錄]  回復(fù)  更多評論   

2011-02-02 10:28 by by
iocp的優(yōu)勢就是系統(tǒng)調(diào)度的工作線程,他會盡量進(jìn)行無切換的線程調(diào)度。我之前做過試驗(yàn),壓力小時(shí),工作線程幾乎只用到了第一個(gè)。你用固定的io線程正是摒棄的iocp的這個(gè)優(yōu)勢。
epoll的優(yōu)勢是高效的poll,但是他並不涉及線程,所有的線程處理都是靠線程系統(tǒng)本身來調(diào)度,並不會去針對epoll優(yōu)化。並且epoll管理的只是狀態(tài),並不會關(guān)心io操作本身,這也加重了編碼的負(fù)擔(dān),以epoll為基礎(chǔ)的各種網(wǎng)絡(luò)框架參差不齊。
以前我用的時(shí)候,是以單線程epoll,多線程處理狀態(tài)的方式建立了框架。io操作都分布到多個(gè)線程。所有的狀態(tài)都放進(jìn)一個(gè)隊(duì)列中,等待io線程去取用。

# re: Windows下兩種iocp實(shí)現(xiàn)的差距  回復(fù)  更多評論   

2011-02-02 11:43 by 袁斌
@by
iocp編程理論上比epoll困難,因?yàn)椋?br>1、winsock系列函數(shù)眾多,常用的也有幾十個(gè)函數(shù),而且參數(shù)眾多,而*nix只有區(qū)區(qū)幾個(gè)函數(shù)。
2、epoll函數(shù)通知之后是非阻塞同步調(diào)用,而iocp是異步調(diào)用,更難理解,編程也更復(fù)雜。
3、iocp模式的框架幾乎沒有單線程模式的,而epoll的框架很多都是單線程的,這和iocp的多線程框架相比難度降低了很多。當(dāng)然這個(gè)不絕對,要視不同實(shí)現(xiàn)而定。
iocp異步多線程模式的確是加大了資源管理的難度,我看過很多網(wǎng)絡(luò)框架的實(shí)現(xiàn),幾乎都在這上面花了很多精力,但處理得好的極少,即使是無錯(cuò)的都不多。所以也沒見過幾個(gè)寫得好的框架,同樣采用iocp的不同實(shí)現(xiàn),效率相差可能超過百倍,這可能比epoll的不同框架差距更大。
最近的frame2中IO線程分組調(diào)度是為了給每個(gè)io線程綁定特殊tls數(shù)據(jù),并使得這些線程可直接接收指定消息更新tls數(shù)據(jù),標(biāo)準(zhǔn)框架還是經(jīng)典模式的,使用好多年了,高效穩(wěn)定可靠。

# re: Windows下兩種iocp實(shí)現(xiàn)的差距  回復(fù)  更多評論   

2011-02-04 11:52 by 楊粼波
by說的在理.


iocp可以看看這篇文章,挺好的.
http://wenku.baidu.com/view/a1f11287bceb19e8b8f6ba2d.html
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲视频在线播放| 亚洲主播在线观看| 亚洲一区二区三区精品动漫| 亚洲精品在线免费| 亚洲啪啪91| 99这里有精品| 亚洲一区制服诱惑| 欧美专区中文字幕| 久久久久久夜精品精品免费| 久久综合网色—综合色88| 欧美成人一区二区在线| 亚洲美女黄色| 午夜精品视频在线观看| 欧美国产三区| 亚洲私人影院| 噜噜爱69成人精品| 欧美猛交免费看| 久久九九精品| 久久精品国产清自在天天线| 久久久精品日韩欧美| 欧美1区免费| 欧美午夜性色大片在线观看| 国产婷婷色一区二区三区在线 | 欧美一区二区三区精品电影| 久久精品欧美| 亚洲人成在线免费观看| 亚洲免费一在线| 欧美成在线视频| 国产精品爽爽爽| 亚洲精品久久久蜜桃| 欧美一区二区三区婷婷月色| 91久久国产自产拍夜夜嗨| 亚洲女人小视频在线观看| 免费欧美在线视频| 国内揄拍国内精品久久| 亚洲自拍偷拍麻豆| 亚洲国产欧美日韩精品| 久久黄金**| 久久久成人网| 欧美综合激情网| 欧美片第一页| 在线观看成人一级片| 亚洲综合成人婷婷小说| 亚洲国产黄色片| 久久精品国亚洲| 国产女人精品视频| 亚洲一二三区在线观看| 亚洲激情在线观看| 麻豆国产精品777777在线| 国产欧美日韩综合一区在线播放 | 一区二区黄色| 亚洲国产另类久久精品| 久久亚洲欧美| 红桃视频一区| 老色批av在线精品| 久久精品国产91精品亚洲| 国产亚洲永久域名| 久久精品一二三区| 欧美在线观看视频在线| 韩国精品久久久999| 久久久噜噜噜久久| 久久久久成人精品免费播放动漫| 国产一区二区日韩精品| 久久人人精品| 久久久久久久97| 激情欧美一区| 免费一级欧美片在线播放| 亚洲日本视频| 欧美色网在线| 久久视频在线视频| 欧美国产精品劲爆| 亚洲精品日韩一| 欧美日韩免费看| 亚洲午夜免费视频| 一区二区三区四区蜜桃| 国产精品成av人在线视午夜片| 亚洲无线一线二线三线区别av| 在线亚洲一区二区| 国产欧美日韩另类视频免费观看| 欧美一级成年大片在线观看| 欧美在线免费观看亚洲| 在线播放不卡| 亚洲美女91| 国产在线视频欧美| 欧美福利影院| 国产精品入口麻豆原神| 美女视频一区免费观看| 欧美日本精品| 久久久欧美精品sm网站| 奶水喷射视频一区| 新67194成人永久网站| 久久嫩草精品久久久久| 亚洲视频欧洲视频| 久久久久亚洲综合| 亚洲一区视频在线观看视频| 欧美一区三区二区在线观看| 亚洲茄子视频| 午夜在线成人av| 99re66热这里只有精品3直播 | 亚洲精选在线观看| 亚洲欧美日本国产有色| 亚洲国产婷婷香蕉久久久久久| 中文精品一区二区三区| 亚洲国产精品一区二区久| 一区二区三区四区在线| 91久久国产综合久久蜜月精品| 亚洲综合社区| 亚洲小说欧美另类婷婷| 蜜臀av一级做a爰片久久| 欧美一区二区在线播放| 欧美视频在线观看免费网址| 亚洲第一区在线观看| 国产啪精品视频| 日韩一级免费| 亚洲伦理在线| 老司机午夜精品视频| 小辣椒精品导航| 欧美日韩色综合| 亚洲激情亚洲| 亚洲激情在线激情| 久久久国产午夜精品| 午夜亚洲一区| 国产精品国产馆在线真实露脸| 91久久精品日日躁夜夜躁国产| **性色生活片久久毛片| 久久久久久成人| 久久久夜精品| 娇妻被交换粗又大又硬视频欧美| 亚洲综合色网站| 欧美一区二区在线看| 国产精品嫩草99av在线| 亚洲婷婷综合色高清在线| 六月婷婷久久| 国产免费亚洲高清| 中国女人久久久| 在线视频中文亚洲| 欧美日韩国产小视频在线观看| 欧美黄色视屏| 91久久久久久久久| 免费视频一区| 亚洲精品1区| 亚洲在线视频| 国产精品亚洲第一区在线暖暖韩国| 亚洲深夜福利网站| 欧美一区二区视频在线观看2020| 国产免费成人在线视频| 性欧美暴力猛交69hd| 久久久视频精品| 精品福利免费观看| 欧美sm视频| 日韩视频一区二区三区| 亚洲视频欧美视频| 国产精品一区二区三区久久久| 午夜精品久久久久久久久| 久久综合伊人77777麻豆| 91久久精品美女| 欧美日韩国产高清视频| 亚洲一区成人| 久久亚洲综合色| 亚洲精品国产拍免费91在线| 欧美色图麻豆| 久久久国产亚洲精品| 亚洲欧洲综合另类| 亚洲欧美综合v| 精品1区2区| 欧美精品在线播放| 亚洲欧美日韩天堂一区二区| 欧美77777| 亚洲欧美日韩国产精品 | 欧美成人午夜激情视频| 亚洲六月丁香色婷婷综合久久| 欧美一区影院| 亚洲三级网站| 国产亚洲成人一区| 欧美日韩精品免费观看| 欧美制服丝袜第一页| 亚洲欧洲一区二区在线播放| 午夜久久久久久| 亚洲日本成人| 国产一区美女| 欧美三级网址| 裸体一区二区三区| 午夜精品在线看| 亚洲看片免费| 欧美国产视频在线观看| 久久激五月天综合精品| 一区二区三区视频在线| 影音先锋亚洲视频| 国产欧美日韩亚洲| 欧美人与禽猛交乱配视频| 久久精品国内一区二区三区| 亚洲一区二区欧美| 一本久道久久综合狠狠爱| 欧美粗暴jizz性欧美20| 欧美一区二区三区免费视频| 亚洲精品一区中文| **性色生活片久久毛片| 国产一区二区毛片| 国产日韩精品一区观看 | 国产伦一区二区三区色一情|