[erlang-questions] Memory-effective queue handling

Ronny Meeus <>
Tue Jul 24 20:52:07 CEST 2012

A possibility is to count the number of elements that have to be
present in the new list by just iterating over it.
Once you know the number of elements, the queue can be split in 2.


On Tue, Jul 24, 2012 at 8:36 PM, Erik Søe Sørensen <> wrote:
> Den 24/07/2012 17.11 skrev "Attila Rajmund Nohl" <>:
>> Hello!
>> I have a data structure where I manage "historical data": a list of
>> timestamps when events happened. I only need to know how many events
>> happened in the last 24 hours. When an event happens, I put the
>> timestamp into the queue (I use the queue module in OTP). When I check
>> how many values are in the queue, I also remove the entries that are
>> older than 24 hours. My problem is: when I remove the old elements, I
>> can do it one by one and at each step the (possibly big) queue gets
>> copied and I run out of memory.
> I am curious: how do you manage to do this? Can we see the code?
> (Certainly it shouldn't be the case that much copying should be done at each
> step.)
>> Is there a cleverer way to remove
>> elements from queue? Or maybe I shall use an ordered_set ETS table
>> instead of a queue?
>> _______________________________________________
>> erlang-questions mailing list
>> http://erlang.org/mailman/listinfo/erlang-questions
> _______________________________________________
> erlang-questions mailing list
> http://erlang.org/mailman/listinfo/erlang-questions

More information about the erlang-questions mailing list