如何在内存中计算Erlang进程的大小?

ska*_*tek 3 erlang process

我有一个"工人"流程,我将分配给一份工作.在我产生这种类型的数百个进程之前,我想知道它的内存消耗数据.

我知道我应该总结存储在进程中的所有元素'循环数据(所有元组,原子,列表等)和实际的进程内存占用.

据我所知,在这之前我必须知道{tuple | atom | list | process}本身的实际大小.

给定存储在进程内存中的某种数据结构如何计算内存中进程的总体大小?

Ada*_*erg 12

erlang:process_info/2将为您提供进程占用的内存量(以字节为单位).例如:

1> erlang:process_info(whereis(code_server), memory).
{memory,284208}
Run Code Online (Sandbox Code Playgroud)

请注意,不包括二进制文件,因为它们不在进程堆中.那些你必须手动计算的大小.