• <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>

            牽著老婆滿街逛

            嚴(yán)以律己,寬以待人. 三思而后行.
            GMail/GTalk: yanglinbo#google.com;
            MSN/Email: tx7do#yahoo.com.cn;
            QQ: 3 0 3 3 9 6 9 2 0 .

            服務(wù)器公共組件實現(xiàn) -- 環(huán)形緩沖區(qū)

            轉(zhuǎn)載:http://blog.csdn.net/lfhfut/archive/2007/09/20/1793797.aspx

               消息隊列鎖調(diào)用太頻繁的問題算是解決了,另一個讓人有些苦惱的大概是這太多的內(nèi)存分配和釋放操作了。頻繁的內(nèi)存分配不但增加了系統(tǒng)開銷,更使得內(nèi)存碎片不斷增多,非常不利于我們的服務(wù)器長期穩(wěn)定運行。也許我們可以使用內(nèi)存池,比如SGI STL中附帶的小內(nèi)存分配器。但是對于這種按照嚴(yán)格的先進先出順序處理的,塊大小并不算小的,而且塊大小也并不統(tǒng)一的內(nèi)存分配情況來說,更多使用的是一種叫做環(huán)形緩沖區(qū)的方案,mangos的網(wǎng)絡(luò)代碼中也有這么一個東西,其原理也是比較簡單的。

              就好比兩個人圍著一張圓形的桌子在追逐,跑的人被網(wǎng)絡(luò)IO線程所控制,當(dāng)寫入數(shù)據(jù)時,這個人就往前跑;追的人就是邏輯線程,會一直往前追直到追上跑的人。如果追上了怎么辦?那就是沒有數(shù)據(jù)可讀了,先等會兒唄,等跑的人向前跑幾步了再追,總不能讓游戲沒得玩了吧。那要是追的人跑的太慢,跑的人轉(zhuǎn)了一圈過來反追上追的人了呢?那您也先歇會兒吧。要是一直這么反著追,估計您就只能換一個跑的更快的追逐者了,要不這游戲還真沒法玩下去。

              前面我們特別強調(diào)了,按照嚴(yán)格的先進先出順序進行處理,這是環(huán)形緩沖區(qū)的使用必須遵守的一項要求。也就是,大家都得遵守規(guī)定,追的人不能從桌子上跨過去,跑的人當(dāng)然也不允許反過來跑。至于為什么,不需要多做解釋了吧。

              環(huán)形緩沖區(qū)是一項很好的技術(shù),不用頻繁的分配內(nèi)存,而且在大多數(shù)情況下,內(nèi)存的反復(fù)使用也使得我們能用更少的內(nèi)存塊做更多的事。

              在網(wǎng)絡(luò)IO線程中,我們會為每一個連接都準(zhǔn)備一個環(huán)形緩沖區(qū),用于臨時存放接收到的數(shù)據(jù),以應(yīng)付半包及粘包的情況。在解包及解密完成后,我們會將這個數(shù)據(jù)包復(fù)制到邏輯線程消息隊列中,如果我們只使用一個隊列,那這里也將會是個環(huán)形緩沖區(qū),IO線程往里寫,邏輯線程在后面讀,互相追逐。可要是我們使用了前面介紹的優(yōu)化方案后,可能這里便不再需要環(huán)形緩沖區(qū)了,至少我們并不再需要他們是環(huán)形的了。因為我們對同一個隊列不再會出現(xiàn)同時讀和寫的情況,每個隊列在寫滿后交給邏輯線程去讀,邏輯線程讀完后清空隊列再交給IO線程去寫,一段固定大小的緩沖區(qū)即可。沒關(guān)系,這么好的技術(shù),在別的地方一定也會用到的。

             

            posted on 2008-07-11 02:45 楊粼波 閱讀(590) 評論(0)  編輯 收藏 引用


            只有注冊用戶登錄后才能發(fā)表評論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            国产精品免费看久久久| 久久国产综合精品五月天| 久久久久久久精品妇女99| 久久久久久精品久久久久| 国产成人精品免费久久久久| 久久久久亚洲AV综合波多野结衣| 亚洲人成电影网站久久| 国产一区二区三区久久| 婷婷国产天堂久久综合五月| 欧美激情精品久久久久| 久久天天躁狠狠躁夜夜avapp| 日韩亚洲欧美久久久www综合网| 国产精品久久久久蜜芽| 久久国产成人午夜aⅴ影院| 久久久久久毛片免费播放| 久久99精品久久久久久9蜜桃| MM131亚洲国产美女久久| 天堂无码久久综合东京热| 国产精品久久毛片完整版| 天天躁日日躁狠狠久久| 欧美激情一区二区久久久| 久久综合视频网站| 久久精品国产精品国产精品污 | 中文字幕一区二区三区久久网站| 亚洲精品乱码久久久久久蜜桃| 狠狠狠色丁香婷婷综合久久五月| 久久婷婷五月综合色奶水99啪| 狠狠久久综合伊人不卡| 亚洲国产成人久久综合一 | 国产美女久久精品香蕉69| 久久婷婷五月综合97色直播| 亚洲精品成人网久久久久久| 久久久WWW成人| 99久久亚洲综合精品成人| 91麻豆精品国产91久久久久久| 91久久婷婷国产综合精品青草| 嫩草伊人久久精品少妇AV| 久久发布国产伦子伦精品| 亚洲精品无码专区久久久| 漂亮人妻被黑人久久精品| 99re久久精品国产首页2020|