[erlang-questions] Erlang code loading

Max Bourinov <>
Mon Nov 21 13:34:57 CET 2011


Does anybody knows how it exactly runs?

Best regards,
Max




2011/11/21 CGS <>

> **
> Sorry for not being explicit. I was referring not only to the data, but
> also to the code itself. As far as I noticed, Erlang does not make any
> difference between loading the same module in different processes and
> different modules in different processes. Each process instance is
> independent and does not share any bit of its memory with other instances
> (it can copy, but does not share). I might be wrong in my observation,
> though (only a developer can be 100% sure).
>
> My test consisted in starting the same piece of code in two different
> Erlang sessions (processes as you call them) and I noticed the same memory
> consumption for each (top -d 1 -p <PID of the system process where your
> code is loaded>). You can test that as well and compare it with the beam
> size. As I said, I might be wrong because my code has a certain level of
> granularity which doesn't allow very large functions (I avoid large
> functions for better monitoring the states).
>
> I hope this answer will at least help you to convince yourself about which
> answer is correct.
>
> CGS
>
>
>
>
>
>
> On 11/21/2011 12:51 PM, Max Bourinov wrote:
>
> About the process data it is absolutely clean how Erlang handles it. I
> just want some clarification about the code.
>
>
> Best regards,
> Max
>
>
>
>
> 2011/11/21 CGS <>
>
>>  One instance per process, one memory allocation per process (even if it
>> is the same code running). Erlang has no explicit knowledge of beam shared
>> objects as far as I know. If somebody knows differently, please, correct me.
>>
>> CGS
>>
>>
>>
>>
>>
>> On 11/21/2011 12:40 PM, Max Bourinov wrote:
>>
>> Thank you for your reply! But in Erlang processes, not threads. There are
>> some differences between them...
>>
>>
>>
>> Отправлено с iPhone
>>
>> 21.11.2011, в 15:05, CGS <> написал(а):
>>
>>   Hi, Max,
>>
>> Not an expert, but I think the memory is multiplied by the number of
>> threads. Meaning, you start with an initial heap for that thread and add to
>> that the states and other internal variables (repeat that for all the
>> threads). At least that I noticed from my codes by now. If I am wrong, I
>> apologize.
>>
>> Cheers,
>> CGS
>>
>>
>>
>>
>> On 11/21/2011 11:57 AM, Max Bourinov wrote:
>>
>> Hi Erlangers,
>>
>>  I am wondering how my Erlang app would behave in this case:
>>
>>  I have a lot identical processes (the same module, state of couse is
>> different in each process). The module that I swap many times has a huge
>> function. I want to clarify how much memory it will take? It will take
>> memory for that huge function in each process or only once?
>>
>>  I believe it will take memory only once, but I want to make sure.
>>
>> Best regards,
>> Max
>>
>>
>>
>> _______________________________________________
>> erlang-questions mailing ://erlang.org/mailman/listinfo/erlang-questions
>>
>>
>>   _______________________________________________
>> erlang-questions mailing list
>> 
>> http://erlang.org/mailman/listinfo/erlang-questions
>>
>>
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20111121/ed4e04a4/attachment.html>


More information about the erlang-questions mailing list