Lists and Vectors and collections are used to store and sort variables in JAVA. With larger number of objects such lists can become very slow. Here is an extended benchmark which shows that CircularArrayLists are among the fastest ones if appending, adding or removing from .

It is based on a benchmark published by Dr. Heinz M. Kabutz published in the Javaspecialist
It compares 4 Lists with the CircularArrayList and the ProActive implementation as fastest when using different queue lengths. When using around 10 million queue the CircularArrayList is almost 500,000 times faster on a Core Duo 2.0 GHz with Java 1.6


ArrayList - slow
LinkedList - fast
CircularArrayList - faster
Proactive CircularArrayList - fastest

Correctness Passed

Performance with queue length = 1

class java.util.ArrayList managed 812022 iterations in 2000ms

class java.util.LinkedList managed 356089 iterations in 2000ms

class arraybench.CircularArrayList managed 481855 iterations in 2000ms

class org.objectweb.proactive.core.util.CircularArrayList managed 519360 iterations in 2000ms

Performance with queue length = 10

class java.util.ArrayList managed 390990 iterations in 2000ms

class java.util.LinkedList managed 385996 iterations in 2000ms

class arraybench.CircularArrayList managed 486937 iterations in 2000ms

class org.objectweb.proactive.core.util.CircularArrayList managed 524216 iterations in 2000ms

Performance with queue length = 100

class java.util.ArrayList managed 185120 iterations in 2000ms

class java.util.LinkedList managed 369142 iterations in 2000ms

class arraybench.CircularArrayList managed 485464 iterations in 2000ms

class org.objectweb.proactive.core.util.CircularArrayList managed 516979 iterations in 2000ms

Performance with queue length = 1000

class java.util.ArrayList managed 23646 iterations in 2000ms

class java.util.LinkedList managed 452653 iterations in 2000ms

class arraybench.CircularArrayList managed 489777 iterations in 2000ms

class org.objectweb.proactive.core.util.CircularArrayList managed 532407 iterations in 2000ms

Performance with queue length = 10,000

class java.util.ArrayList managed 2279 iterations in 2000ms

class java.util.LinkedList managed 376432 iterations in 2000ms

class arraybench.CircularArrayList managed 482587 iterations in 2000ms

class org.objectweb.proactive.core.util.CircularArrayList managed 528485 iterations in 2000ms

Performance with queue length = 100,000

class java.util.ArrayList managed 228 iterations in 2000ms

class java.util.LinkedList managed 327265 iterations in 2000ms

class arraybench.CircularArrayList managed 459143 iterations in 2000ms

class org.objectweb.proactive.core.util.CircularArrayList managed 558808 iterations in 2000ms

Performance with queue length = 1,000,000

class java.util.ArrayList managed 21 iterations in 2047ms

class java.util.LinkedList managed 80388 iterations in 2125ms

class arraybench.CircularArrayList managed 499152 iterations in 2000ms

class org.objectweb.proactive.core.util.CircularArrayList managed 529899 iterations in 2000ms

Performance with queue length = 10,000,000

class java.util.ArrayList managed 1 iterations in 2906ms

class java.util.LinkedList managed 37027 iterations in 3188ms

class arraybench.CircularArrayList managed 495095 iterations in 2000ms

class org.objectweb.proactive.core.util.CircularArrayList managed 527149 iterations in 2000ms


Source

Proactive API
CircularArrayList