簡體   English   中英

以編程方式獲取OS X上安裝的RAM量

[英]Programmatically get amount of RAM installed on OS X

我正在安裝一台安裝了8 GB內存的機器,我正在嘗試以編程方式確定機器中安裝了多少內存。 我已經嘗試使用sysctlbyname()來獲取安裝的內存量,但它似乎僅限於返回一個帶符號的32位整數。

uint64_t total = 0;
size_t size = sizeof(total);
if( !sysctlbyname("hw.physmem", &total, &size, NULL, 0) )
     m_totalMemory = total;

上面的代碼,無論傳遞給sysctlbyname的類型是什么,總是在total變量中返回2147483648。 我一直在通過IOKit和IORegistryExplorer搜索確定已安裝內存的另一條路徑,但到目前為止還沒有提出任何建議。 我在IORegistryExplorer中找到了IODeviceTree:/ memory,但是那里沒有大小的字段。 我也沒有在IO注冊表中找到任何其他地方。 有沒有辦法通過IOKit訪問此信息,或者使sysctlbyname返回多於32位有符號整數的方法?

您可以使用sysctl()並查詢HW_MEMSIZE 。這會將內存大小返回為64位整數,而不是默認的32位整數。

手冊頁提供了詳細信息。

簡單的方法:

[[NSProcessInfo processInfo] physicalMemory]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM