<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    放翁(文初)的一畝三分地

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      210 隨筆 :: 1 文章 :: 320 評論 :: 0 Trackbacks
     

             昨天在看Cache Client代碼的時候,發現在從資源池中獲取SocketIO部分代碼在高并發情況下效率不高,因此考慮通過一些變通的方式來提高效率,下面說的內容僅僅是當前自己琢磨出來可以部分提高效率的方法,希望看了這篇文章的同學能夠有更好的方式或者算法來提高效率。

    情景:

           Cache Client SocketIO資源池是一個兩級的Map,具體定義為:ConcurrentMap<String, ConcurrentMap<SockIO, Integer>>。第一級MapHost作為Key,第二級MapSockIO本身作為Key,三種SockIO狀態(可用,占用,廢棄)作為value。之所以采用一個Pool來存儲三種狀態主要是考慮到在高并發下,多個池之間保持原子性的復雜。

    每一次獲取可用的SocketIO的操作需要經歷:1.遍歷Host所在的Map2.逐個比較狀態。3.原子方法獲取可用SocketIO。(并發問題所要求的,具體代碼可以下載:http://memcache-client-forjava.googlecode.com/files/alisoft-xplatform-asf-cache-2.5.1-src.jar )。

    在修改過去的版本里面,首先遍歷的過程是一個固定順序的過程(keyset),這樣會導致在高并發的情況下,越來越多的資源申請命中率會下降,因為壓力總是落在keyset靠前的那些SockIO上(重復比較)。需要考慮通過什么手段可以提高在高并發下的申請命中率。

    思考:

    1. 資源申請的越早,被釋放的可能性越高,因此是否可以考慮采用更新SockIO最后申請時間來作為后續申請的初步依據。(本身復雜度帶來的耗時可能會超過命中率降低帶來的損耗)

    2. 采用隨機數的方式來確定keyset的起始游標,也就不是每次都從keyset第一位開始(可以把keyset看作一個首尾相接的數組)。

    3. 在每次資源回收的時候紀錄下該資源為可用(當前為每一個Host就記錄一個可能可用的資源,簡單化操作),作為申請的首選嘗試。(嘗試不成功在去遍歷)。

    當前實現了2,3組合,發現效果明顯,在500個并發下,每個線程200次操作(一系列動作),壓力測試結果如下:

    Cache test consume(cache測試總共耗時)average boundle consume(每個線程總耗時),average per request(每個線程每次操作總耗時)

    沒有作任何改動以前的測試結果:

    cache test consume: 11507741, average boundle consume: 57538, average per request :115

    采用了2策略以后的測試結果:

    cache test consume: 10270512, average boundle consume: 51352, average per request :102

    采用了23策略以后的測試結果:

    cache test consume: 9140660, average boundle consume: 45703, average per request :91

    posted on 2009-05-07 17:15 岑文初 閱讀(1964) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 在线a级毛片免费视频| 麻豆精品成人免费国产片| 最近免费中文字幕大全视频| 久久精品国产亚洲AV无码麻豆| 91嫩草国产在线观看免费| 久久精品国产亚洲AV果冻传媒| 亚洲va在线va天堂va四虎| 国产一级a毛一级a看免费人娇| 久久国产免费一区| 亚洲AV无码久久精品成人| 99视频有精品视频免费观看| 91亚洲精品视频| 男女免费观看在线爽爽爽视频 | 2020年亚洲天天爽天天噜| **真实毛片免费观看| 亚洲伊人色一综合网| 青苹果乐园免费高清在线| 国产婷婷综合丁香亚洲欧洲| 成人性生交大片免费看无遮挡| 色噜噜AV亚洲色一区二区| a成人毛片免费观看| 久久精品国产亚洲AV麻豆网站| 男女猛烈xx00免费视频试看| 免费大片黄手机在线观看| a级毛片免费观看在线| 久久亚洲私人国产精品vA| 99视频在线精品免费观看6| 老司机午夜在线视频免费| 丁香五月亚洲综合深深爱| 88av免费观看| 国产精品国产亚洲区艳妇糸列短篇| 99蜜桃在线观看免费视频网站| 亚洲成a人无码av波多野按摩| 亚洲中文无码线在线观看| 国产网站免费观看| 国产高清视频免费在线观看| 中文字幕在线观看亚洲| 国产乱人免费视频| 免费A级毛片无码A∨中文字幕下载| 亚洲伦乱亚洲h视频| 一区二区三区四区免费视频|