Chad Stansbury wrote:

> Your results piqued my interest.  I have created a test program to determine
> at which point the linked list becomes more efficient than the array list.
> Here are my results:
> 
> List Size = 16 elements
> Iterations = 1,000,000
> ArrayList = 331 ms
> LinkedList = 761 ms
> 
> List Size = 32 elements
> Iterations = 1,000,000
> ArrayList = 391 ms
> LinkedList = 761 ms
> 
> List Size = 64 elements
> Iterations = 1,000,000
> ArrayList = 460 ms
> LinkedList = 751 ms
> 
> List Size = 128 elements
> Iterations = 1,000,000
> ArrayList = 601 ms
> LinkedList = 751 ms
> 
> List Size = 256 elements
> Iterations = 1,000,000
> ArrayList = 881 ms
> LinkedList = 761 ms
> 
> As you can see, the linked list's add/remove time remains constant, while
> the array list experiences linear degradation.  The crossover point being
> somewhare around 200 some elements.  Anyway, it was an interesting exercise.
> Below is the program I used to test this, and all results above were
> generated w/ a P4 @ 1.4GHz, 512 MB RAM.


I ran your test, and for my machine (arguably slower) the crossover point
was 512 elements.

I then altered it to be more in line with how I was using the Lists before:
I added to the tail, and removed from the head.

Both CircularBuffer and LinkedList exibited constant time access.  The interesting
thing is that ArrayList is more efficient operating the way I told it to.  The
crossover point was pushed back to somewhere around 624 elements.

Armed with this knowledge, I think the CircularBuffer is the better approach,
and am not likely to implement a LinkedList version of the Queue.


-- 

"They that give up essential liberty to obtain a little temporary safety
  deserve neither liberty nor safety."
                 - Benjamin Franklin


--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to