[erlang-questions] Memory-effective queue handling

Attila Rajmund Nohl <>
Tue Jul 24 17:11:31 CEST 2012


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. Is there a cleverer way to remove
elements from queue? Or maybe I shall use an ordered_set ETS table
instead of a queue?

More information about the erlang-questions mailing list