MacOSX:任务信息/主机统计和活动监视器之间的差异?

MacOSX:任务信息/主机统计和活动监视器之间的差异?,c,macos,memory,C,Macos,Memory,在MacOSX上,我从C测试task_info/host_统计信息以获取内存信息 我已经阅读了大量的答案/文章/教程,获得(比如)空闲内存系统的正确方法似乎是使用主机统计数据 通常说,可用内存总量的计算如下: vmstat.wire\u count+vmstat.active\u count+vmstat.inactive\u count+vmstat.free\u count 这在我的系统上是错误的。与返回的值进行比较时,缺少页面 sysctlbyname(“hw.memsize”,&mems

在MacOSX上,我从C测试task_info/host_统计信息以获取内存信息

我已经阅读了大量的答案/文章/教程,获得(比如)空闲内存系统的正确方法似乎是使用主机统计数据

通常说,可用内存总量的计算如下:

vmstat.wire\u count+vmstat.active\u count+vmstat.inactive\u count+vmstat.free\u count

这在我的系统上是错误的。与返回的值进行比较时,缺少页面

sysctlbyname(“hw.memsize”,&memsize,&len,NULL,0))

总可用内存应为:

vmstat.free\u计数

同样,根据活动监视器,这是错误的,这里的差异超过1GB

对于
task\u info
info.resident\u size
返回的值相同,例如,我正在运行的进程返回17 MB,而活动监视器报告的值小于4 MB


那么,谁躺在这里?还是我做错了什么?

什么版本的OS X?你看过
struct vm\u statistics 64
host\u statistics 64()
了吗?它有额外的字段,比如
压缩器\页面\计数
。另外,您在活动监视器中的什么位置查找系统内存统计信息?至少,我认为您应该使用
vmstat.free\u count+vmstat.inactive\u count
来获得“空闲内存”的良好感觉。此外,请检查
vm\u stat
命令的输出,并查看其功能。