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