0

我是 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 中运行相同的函数给了我同样的东西。我认为这个数字不正确,因为活动监视器目前告诉我这个:

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% 的报告纯粹是免费的。我错过了什么吗?

4

1 回答 1

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

请不要犹豫,提交补丁

于 2013-10-03T12:28:13.287 回答