[erlang-questions] process_info
Björn-Egil Dahlberg
egil@REDACTED
Fri Feb 21 13:27:16 CET 2014
I want to stress that:
NO, we don't use 40 MB for internal structures.
By internal structure size we mean the size of the C struct for
implementing the process (in 17.0-rc1 this is 792 bytes).
In erlang:process_info(Pid, memory) we also include the size all
heap-fragments, typically messages received that are not yet in any of
the two "real" heaps.
// Björn-Egil, Erlang/OTP
On 2014-02-21 12:00, Sverker Eriksson wrote:
> A process has two heaps, one "old" heap with long lived data and a
> "new" heap with more recently created data.
>
> 'heap_size' shows only the size of the new heap.
> Newer releases (my git repo goes back to R13B03) contain
> a 'total_heap_size' that also include the old heap.
>
> /Sverker, Erlang/OTP
>
>
> On 02/21/2014 07:14 AM, satoshi kinoshita wrote:
>> Hi,
>>
>> I have a question about process_info().
>>
>> For process <0,477,0> below,
>> heap_size is 6765 words,
>> stack_size is 12 words and
>> memory is 40,149,752 bytes.
>>
>> Erlang doc says 'memory' includes stack, heap and internal structures.
>> In this case, stack + heap is 4*(6765+12)=27,108 bytes.
>>
>> Does this mean most of memory usage(about 40M bytes) are used
>> for "internal structures"?
>>
>> What is "internal structures"???
>>
>> (I'm still using R11B-5 and I don't know it's specific to R11B-5 or not.)
>>
>>
>> Thanks in advance,
>> Kinoshita
>>
>> -------------------------------------------------------
>> (hss1@REDACTED)3> process_info(pid(0,477,0)).
>> [{registered_name,mgs_db_mgse},
>> {current_function,{gen_server,loop,6}},
>> {initial_call,{proc_lib,init_p,5}},
>> {status,waiting},
>> {message_queue_len,0},
>> {messages,[]},
>> {links,[<0.436.0>]},
>> {dictionary,[{'$ancestors',[mgs_db_sup,<0.435.0>]},
>> {'$initial_call',{gen,init_it,
>> [gen_server,
>> <0.436.0>,
>> <0.436.0>,
>> {local,mgs_db_mgse},
>> mgs_db_mgse,
>> [60,0,"mgsen-i+up"],
>> []]}}]},
>> {trap_exit,false},
>> {error_handler,error_handler},
>> {priority,normal},
>> {group_leader,<0.434.0>},
>> {heap_size,6765},
>> {stack_size,12},
>> {reductions,237536590},
>> {garbage_collection,[{fullsweep_after,65535}]}]
>> (hss1@REDACTED)4> process_info(pid(0,477,0),memory).
>> {memory,40149752}
>>
>> ---http://www.erlang.org/documentation/doc-5.5.5/lib/kernel-2.11.5/doc/html/erlang.html--------------
>>
>> {heap_size, Size}
>> Size is the heap size of the process in words.
>>
>> {stack_size, Size}
>> Size is the stack size of the process in words.
>>
>> {memory, Size}
>> Size is the size of the process in bytes. This includes call
>> stack, heap and internal structures.
>>
>>
>>
>> _______________________________________________
>> erlang-questions mailing list
>> erlang-questions@REDACTED
>> http://erlang.org/mailman/listinfo/erlang-questions
>
>
>
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://erlang.org/mailman/listinfo/erlang-questions
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20140221/9e4ec653/attachment.htm>
More information about the erlang-questions
mailing list