【问题标题】:How to calculate the size of an Erlang process in memory?如何计算内存中 Erlang 进程的大小?
【发布时间】:2011-09-23 11:21:42
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: process erlang


    【解决方案1】:

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

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

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

    【讨论】:

    • 只想添加a useful link to docs,他们计算每个进程的字数:Bytes div erlang:system_info(wordsize).
    【解决方案2】:

    【讨论】:

      猜你喜欢
      • 2010-12-12
      • 2017-08-06
      • 1970-01-01
      • 1970-01-01
      • 2010-09-07
      • 2020-11-20
      • 2015-09-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多