ArrayList Vector

100000条数据时:测了4次,分别是9ms/13ms;8ms/6ms;8ms/6ms;8ms/6ms【其中/前为ArrayList数据,/后为Vector数据】
1000000条数据时:测了4次,分别是18ms/30ms;18ms/30ms;18ms/30ms;18ms/31ms
10000000条数据时:测了4次,分别是2648ms/911ms;2649ms/915ms;2648ms/886ms;2687ms/891ms

经过测试结果能够看出,在单线程下的add()函数,ArrayList并无表现出优点,数据量大的时候甚至是劣势。我猜想,或许是因为在单线程下,虽然有加锁释放锁的过程,可是这一过程代价很小;且没有线程等待的过程,所以并无表现出优点。数组

 

正如你说的,Vector的性能比ArrayList数据多的时候要好,单线程的话,上锁解锁的时间能够忽略,可是,arraylist和vector都是可变数组,当容量不够的时候,arraylist是增长自身的一半,而vector是增长一倍,从这里看vector要省不少时间在增长容量上。也许这就是优点所在。函数

相关文章
相关标签/搜索