CopyOnWriteArrayList與Collections.synchronizedMap性能

平臺:

AMD X2 5400+2G RAMJDK6eclipse 3.4數組

CopyOnWriteArrayList:專爲多線程併發設計的容器,「寫入時複製」策略。多線程

Collections.synchronizedMap:同步容器,獨佔策略。併發



分析:

能夠看到隨着線程數不斷翻倍,CopyOnWriteArrayList的訪問時間基本也是翻倍,但Collections.synchronizedMap的時間則是*4。在兩個線程下Collections.synchronizedMap訪問時間大概是CopyOnWriteArrayList5倍,但在64線程的時候就變成了200+。因此若是在容器徹底只讀的狀況下CopyOnWriteArrayList絕對是首選。但CopyOnWriteArrayList採用「寫入時複製」策略,對容器的寫操做將致使的容器中基本數組的複製,性能開銷較大。因此但在有寫操做的狀況下,CopyOnWriteArrayList性能不佳,並且若是容器容量較大的話容易形成溢出。代碼中若是CopyOnWriteArrayList cl按照ArrayList al的方法初始化就會形成溢出。eclipse

相關文章
相關標籤/搜索