是memsup:get_system_memory_data报告奇怪的数字还是我误解了它们?

时间:2013-10-02 18:04:31

标签: macos memory erlang

我是Erlang的新手,最近发现了os_mon应用程序。作为参考,我使用的是OS X 10.7并使用Erlang R16B02。

基本上,当我运行memsup:get_system_memory_data()时,我会得到这样的数字:

[{total_memory,7410088000},
  {free_memory,1758936000},
  {system_total_memory,7410088000}]

一点分裂告诉我这意味着我只有23%的可用内存,这似乎是不对的。在与我的应用程序无关的erlang shell中运行相同的函数给了我同样的东西。我认为这个数字不对,因为Activity Monitor目前告诉我这个:

Out of 8.00 GB

Free: 2.6 GB
Wired: 1.16 GB
Active: 3.23 GB
Inactive: 1,012.6 MB
Used: 5.39 GB

所以至少有32%的人报道纯粹是免费的。我错过了什么吗?

1 个答案:

答案 0 :(得分:1)

这是Erlang中的错误,更确切地说是memsup.erl中的错误。您将看到有关MacOS X 10.2.2的代码中有注释。页面现在可能是4096字节。

但是,页面大小并不能解释您获得的比例。根据以下问题,我们应该添加Pages speculative的数量来获得免费页面的总数。

https://superuser.com/questions/197059/mac-os-x-sysctl-get-total-and-free-memory-size

请不要犹豫file a patch