[erlang-bugs] R16B02: Dialyzer consumes too much, if not infinite, amount of memory for some apps
Mon Nov 18 02:55:28 CET 2013
On 11/16/13 19:22, Kostis Sagonas wrote:
> On 11/15/2013 10:46 AM, Masatake Daimon wrote:
>> I'm using R16B02 on 64-bit Linux. When building PLT, Dialyzer consumes
>> too much memory that even reaches to 1.5 GiB for some applications:
>>> % (ulimit -v 1572864; dialyzer --build_plt --output_plt
>>> syntax_tools.plt --statistics --apps syntax_tools)
>>> Creating PLT syntax_tools.plt ...
>>> compile (+0.02s): 1.10s ( 9 modules)
>>> clean (+0.00s): 0.02s
>>> remote (+0.05s): 1.56s
>>> order (+0.01s): 0.06s
>>> typesig (+0.00s):
>>> Crash dump was written to: erl_crash.dump
>>> eheap_alloc: Cannot allocate 123210440 bytes of memory (of type"heap").
>> .... <SNIP>
> It's true that for the analysis of modules that contain deeply recursive
> types, such as those in syntax_tools, Dialyzer needs some GBs to run (*)
> but I think that this should not really be a problem in any reasonable
> machine that one can buy these days. Sorry but Dialyzer was never meant
> to run on Raspberry Pis.
> (*) I was curious so I tried to see how much memory is needed: To build
> a PLT for syntax_tools you need approx. 1.7GBs on 32-bit machines and
> 3.1GBs on 64-bit machines.
Thanks for your reply, but why Dialyzer needs that much memory in the
first place? Even though machines with 8 GiB RAM is not uncommon these
days, consuming 3.1 GiB for PLT looks hardly reasonable to me.
More information about the erlang-bugs