On Apr 11, 2007, at 5:23 AM, Frank Bitterlich wrote:

> I need to maintain an integer array to be used as a FIFO stack. I
> will .append() up to 10000 values, and when the array reaches that
> size, I will "cut off" the oldest (lowest) 5000 entries. Right now
> I'm doing this by using .remove() in a loop.
>
> The thing needs to be as time-efficient as possible, so I wonder if
> it would be more efficient if I created a new array and copied over
> the last 5000, rather than removing the first 5000.
>
> Has anybody experience with this kind of operations, so that I don't
> need to test it on my own?

The fastest solution given what you've described would be an array of  
10,000 elements (or even a memory block, depending on what types of  
values they are), which you don't resize. Instead, you would keep  
head and tail position values, and maintain everything that way. When  
you reached the end of the array, you'd wrap around the other side.

Does that make sense.

Regards,

Guyren G Howe
Relevant Logic LLC

guyren-at-relevantlogic.com ~ http://relevantlogic.com

REALbasic, PHP, Ruby/Rails, Python programming
PostgreSQL, MySQL database design and consulting
Technical writing and training


_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>

Search the archives:
<http://support.realsoftware.com/listarchives/lists.html>

Reply via email to