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

时间:2011-09-23 11:21:43

标签: process erlang

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

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

据我了解,在此之前我必须知道{tuple | atom | list | process}本身的实际大小。

鉴于某个数据结构存储在进程内存中,如何计算内存中进程的总体大小?

2 个答案:

答案 0 :(得分:11)

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

1> erlang:process_info(whereis(code_server), memory).
{memory,284208}

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

答案 1 :(得分:1)

您是否阅读了Erlang Efficiency Guide on Memory