MacOSX:任务信息/主机统计和活动监视器之间的差异?
在MacOSX上,我从C测试task_info/host_统计信息以获取内存信息 我已经阅读了大量的答案/文章/教程,获得(比如)空闲内存系统的正确方法似乎是使用主机统计数据 通常说,可用内存总量的计算如下: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
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
命令的输出,并查看其功能。