如何在Objective-C中检索可用物理RAM的数量?

如何在Objective-C中检索可用物理RAM的数量?,objective-c,c,macos,unix,memory,Objective C,C,Macos,Unix,Memory,我特别谈论的是物理RAM,我不想包括虚拟内存统计数据。我在MacOSXSnowLeopard上,但我更喜欢一个能在所有OSX平台上运行的解决方案(如Lion)。我使用的是Objective-C,但C中的解决方案显然也是有效的。听起来您希望能够报告的内容与命令行实用程序vm_stat显示的内容相同?如果是这样的话,这可能是最简单的,这是苹果提供的开源软件之一 相关代码位于底部;这一切都取决于对主机统计64的调用,该调用似乎是通过mach/mach.h定义的。快速搜索我的机器,可以发现它在iOS中也

我特别谈论的是物理RAM,我不想包括虚拟内存统计数据。我在MacOSXSnowLeopard上,但我更喜欢一个能在所有OSX平台上运行的解决方案(如Lion)。我使用的是Objective-C,但C中的解决方案显然也是有效的。

听起来您希望能够报告的内容与命令行实用程序vm_stat显示的内容相同?如果是这样的话,这可能是最简单的,这是苹果提供的开源软件之一


相关代码位于底部;这一切都取决于对主机统计64的调用,该调用似乎是通过
mach/mach.h
定义的。快速搜索我的机器,可以发现它在iOS中也可用(或至少已定义)。

使用此选项以字节为单位返回系统的物理RAM量,作为
无符号长整数:

-(unsigned long long)getPhysicalMemoryValue{
    NSProcessInfo *pinfo = [NSProcessInfo processInfo];
    return [pinfo physicalMemory];
}

你需要这些信息是有原因的吗?@b我的程序总是监视计算机的各个方面,它需要作为系统信息一部分的可用物理RAM总量。vm_stat提供虚拟内存统计数据,但我只需要可用物理内存的量。“可用物理内存”是一个毫无意义的术语。你为什么需要它?根据例如,这可能是所有马赫报告。这也正是活动监视器和iStat Pro返回的数据。@Farhad Range Negare为您提供了这些数据。代码是GPL,因此您可以查看它并看到它们使用的是
host\u statistics
,可用空间是从
vm\u statistics
计算出来的,因为
(free\u count+inactive\u count)*vm page\u size
@HotLicks物理内存优于虚拟内存。我需要与Activity Monitor中提供的信息非常相似的物理内存统计信息,因为我试图通知用户他们正在使用的RAM的百分比,而物理内存似乎更合适。因为虚拟机只是模拟内存的硬盘存储,所以物理RAM不是内存的真实表现吗?你能帮助我通过objective c@Brandon B计算出OSX使用了多少RAM吗