閱讀326 返回首頁    go 阿裏雲 go 技術社區[雲棲]


阻塞隊列的性能對比


主要是比較offer跟poll兩個方法的性能,開N個線程,每個線程往隊列裏寫或者取500個整數。

線程數
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

逗號前的數字是offer測試花費的時間,逗號後的數字是poll測試花費的時間,單位毫秒。
結論:
1、ArrayBlockingQueue性能優於LinkedBlockingQueue,但是LinkedBlockingQueue是無界的。
2、ArrayBlockingQueue和LinkedBlockingQueue的poll方法總是比offer方法快,並發越高,差距越大
3、ArrayBlockingQueue和LinkedBlockingQueue的性能遠高於PriorityBlockingQueue,顯然優先隊列在比較優先級上的操作上耗費太多文章轉自莊周夢蝶 
,原文發布時間2008-09-08

最後更新:2017-05-18 11:01:42

  上一篇:go  《Spring 5 官方文檔》1. Spring入門指南(二)
  下一篇:go  Lua學習小記——語言