[erlang-questions] Understanding memory usage

Ward Bekker (TTY) <>
Mon Jan 28 10:50:12 CET 2013


Hi Erik,

Doh! Thank you very much by pointing that out. That was the fix. Memory consumption is now constant and below 20MB.

/W

On 28 jan. 2013, at 09:46, Erik Søe Sørensen <> wrote:

> 2013/1/26 Ward Bekker (TTY) <>
> Hi,
> 
> I run into high memory usage (>1.5GB) when running `crack_util:crack` from this module: https://gist.github.com/4642789 (make sure crypto is running: `crypto:start()`). As far as I can see, it's not creating (or holding on to)  huge pieces of data.
> 
> Why is that?
> 
> It happens in this line:
> lists:seq(0, Products-1)).
> because
> Products = round(math:pow(length(?CHAR_LIST), TryLength)) = 59^5 = 714924299
> lists:seq() is, as anything else in Erlang, calculated eagerly, so you get a full representation of the list.
> In a 32-bit Erlang VM, that takes 5,7GB.
> 
> You may want to write a function that folds over a range of integers, and use that instead of lists:foldl(_,_,lists:seq(A,B)) :-)
> 
> /Erik

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20130128/d5fb7bef/attachment.html>


More information about the erlang-questions mailing list