[erlang-questions] Should I use arrays to optimize?

Pierpaolo Bernardi <>
Wed Feb 29 16:40:58 CET 2012


On Wed, Feb 29, 2012 at 16:29, Richard Carlsson
<> wrote:
> On 02/29/2012 04:20 PM, Pierpaolo Bernardi wrote:
>>
>> On Wed, Feb 29, 2012 at 16:13, Richard Evans
>> <>  wrote:
>>>
>>> I need to store a list of records. Sometimes I need to update the nth
>>> member
>>> in that list. Each record is quite large (hundreds of bytes). I have
>>> hundreds of such records.
>>>
>>> I am currently using an erlang list and using lists:keyreplace to update
>>> the
>>> nth member in the list. But this gets slow as the list gets larger, so I
>>> want to optimize and use something which overwrites rather than copies.
>>>
>>> Should I use the array module for this? If not, what do you recommend?
>>
>> a gb-tree with keys in 1..n.
>>
>> Or a random-access list.  Not in stdlib, but several implementations
>> floating around, including one from me. Ask me if you don't find one.
>
> Why?

Because I was confused, and was thinking about another data structure.

The suggestion to use random-access lists, however, stands if he uses
list-y operations (cons, hd, tl).

Cheers
P.



More information about the erlang-questions mailing list