当前位置:  开发笔记 > 前端 > 正文

在OSX上以编程方式确定物理内存大小

如何解决《在OSX上以编程方式确定物理内存大小》经验,为你挑选了2个好方法。

我们试图找出在运行Mac OS X的机器上安装了多少物理内存.我们发现了BSD功能sysctl().问题是这个函数想要返回一个32位的值,但是有些Mac能够处理高达32 GB的值,这些值不适合32位值.(实际上即使4 GB也不适合32位值.)OS X(10.4或更高版本)上是否有另一个API可以提供这些信息?



1> Michael Tayl..:

答案是使用sysctl获取hw.memsize,如前面的答案中所建议的那样.这是实现此目的的实际代码.

#include 
#include 

...

    int mib[2];
    int64_t physical_memory;
    size_t length;

    // Get the Physical memory size
    mib[0] = CTL_HW;
    mib[1] = HW_MEMSIZE;
    length = sizeof(int64_t);
    sysctl(mib, 2, &physical_memory, &length, NULL, 0);



2> sleske..:

你尝试谷歌搜索?

这似乎是答案:http: //lists.apple.com/archives/scitech/2005/Aug/msg00004.html

sysctl()确实有效,你只需要获取hw.memsize而不是hw.physmem.hw.memsize会给你一个uint64_t,所以没有32位问题.

推荐阅读
手机用户2402852387
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有