我有一个'工人'流程,我将分配给一份工作。在我产生数百个这种类型的进程之前,我想知道它的内存消耗数据。
我知道我应该总结存储在进程中的所有元素'循环数据(所有元组,原子,列表等)和实际的进程内存占用。
据我了解,在此之前我必须知道{tuple | atom | list | process}本身的实际大小。
鉴于某个数据结构存储在进程内存中,如何计算内存中进程的总体大小?
答案 0 :(得分:11)
erlang:process_info/2
将为您提供进程占用的内存量(以字节为单位)。例如:
1> erlang:process_info(whereis(code_server), memory).
{memory,284208}
请注意,不包含二进制文件,因为它们不在进程堆中。那些你必须手动计算的大小。
答案 1 :(得分:1)