阻塞隊列的性能對比

阻塞隊列的性能對比

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

線程數
20
50
100
200
5001000
LinkedBlockingQueue     
15,0
31,15
32,16
63,32
203,47
563,110
ArrayBlockingQueue15,0
16,15
31,15
47,16
125,47
364,68
PriorityBlockingQueue78,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,顯然優先隊列在比較優先級上的操作上耗費太多
4、PriorityBlockingQueue的offer方法與poll方法的性能差距很小,基本維持在近似1:1


發佈了24 篇原創文章 · 獲贊 8 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章