莊周夢(mèng)蝶

          生活、程序、未來(lái)
             :: 首頁(yè) ::  ::  :: 聚合  :: 管理

          阻塞隊(duì)列的性能對(duì)比

          Posted on 2008-09-08 10:05 dennis 閱讀(5850) 評(píng)論(5)  編輯  收藏 所屬分類: javamy open-source

          主要是比較offer跟poll兩個(gè)方法的性能,開(kāi)N個(gè)線程,每個(gè)線程往隊(duì)列里寫或者取500個(gè)整數(shù)。

          線程數(shù)
          20
          50
          100
          200
          500 1000
          LinkedBlockingQueue     
          15,0
          31,15
          32,16
          63,32
          203,47
          563,110
          ArrayBlockingQueue 15,0
          16,15
          31,15
          47,16
          125,47
          364,68
          PriorityBlockingQueue 78,78
          172,188
          360,422
          813,969
          3094,2641
          6547,5453

          逗號(hào)前的數(shù)字是offer測(cè)試花費(fèi)的時(shí)間,逗號(hào)后的數(shù)字是poll測(cè)試花費(fèi)的時(shí)間,單位毫秒。
          結(jié)論:
          1、ArrayBlockingQueue性能優(yōu)于LinkedBlockingQueue,但是LinkedBlockingQueue是無(wú)界的。
          2、ArrayBlockingQueue和LinkedBlockingQueue的poll方法總是比offer方法快,并發(fā)越高,差距越大
          3、ArrayBlockingQueue和LinkedBlockingQueue的性能遠(yuǎn)高于PriorityBlockingQueue,顯然優(yōu)先隊(duì)列在比較優(yōu)先級(jí)上的操作上耗費(fèi)太多
          4、PriorityBlockingQueue的offer方法與poll方法的性能差距很小,基本維持在近似1:1

          評(píng)論

          # re: 阻塞隊(duì)列的性能對(duì)比  回復(fù)  更多評(píng)論   

          2008-09-08 11:39 by advincenting
          單位應(yīng)該是MS?

          # re: 阻塞隊(duì)列的性能對(duì)比  回復(fù)  更多評(píng)論   

          2008-09-08 11:48 by dennis
          @advincenting
          是的,補(bǔ)充下

          # re: 阻塞隊(duì)列的性能對(duì)比  回復(fù)  更多評(píng)論   

          2008-11-18 17:23 by wangzm
          你們誰(shuí)抄襲誰(shuí)的啊?
          http://dennis-zane.javaeye.com/blog/238431

          # re: 阻塞隊(duì)列的性能對(duì)比  回復(fù)  更多評(píng)論   

          2008-11-18 17:59 by dennis
          @wangzm
          你沒(méi)看見(jiàn)dennis?那是我在javaeye的blog

          # re: 阻塞隊(duì)列的性能對(duì)比  回復(fù)  更多評(píng)論   

          2012-01-06 15:33 by 測(cè)試
          測(cè)試意義不大,應(yīng)該比較1讀1寫 ,而后再測(cè)試多讀多寫, 如果超過(guò)8讀8寫意義就更加不大了,估計(jì)你的機(jī)器是不會(huì)配備如此多的cpu可以同時(shí)執(zhí)行那么多線程,從而造成線程切換時(shí)間的開(kāi)銷遠(yuǎn)大于本身隊(duì)列的性能
          主站蜘蛛池模板: 枣强县| 托克托县| 盐边县| 布拖县| 瓮安县| 即墨市| 兴仁县| 文安县| 鸡东县| 晋江市| 衡南县| 称多县| 乌鲁木齐市| 新邵县| 龙州县| 师宗县| 张家界市| 肇庆市| 应城市| 太和县| 平陆县| 隆林| 眉山市| 泰州市| 库尔勒市| 顺义区| 临桂县| 扎鲁特旗| 扎囊县| 阿拉善左旗| 贵州省| 凤城市| 波密县| 万全县| 桂平市| 阳山县| 洛浦县| 乌拉特中旗| 木兰县| 盐城市| 海盐县|