1
我在C#中使用'ObjectQuery'來獲取系統上安裝的總RAM。我從'Win32_PhysicalMemory'對象中捕獲'容量'。 以下是代碼:什麼是Win32_PhysicalMemory類中的Bank標籤
double totalCapacity = 0;
ObjectQuery objectQuery = new ObjectQuery("select * from Win32_PhysicalMemory");
ManagementObjectSearcher searcher = new
ManagementObjectSearcher(objectQuery);
ManagementObjectCollection vals = searcher.Get();
foreach (ManagementObject val in vals)
{
totalCapacity += System.Convert.ToDouble(val.GetPropertyValue("Capacity"));
}
double ramCapacity = totalCapacity/1048576;
return ramCapacity.ToString();
這是大多數系統運作良好。但是有一些系統,其中安裝的RAM是1 GB,但被代碼抓取爲512 MB。 (編輯:它是1 GB的單個RAM棒)
我還檢查「BankLabel」變量在這些系統上的「Win32_PhysicalMemory」對象。它如下'Bank0/1'。 現在據我的理解,我猜測1GB的內存已經被分成兩個512-512MB的存儲區並且被切換。
- 現在的問題是,我的理解是關於內存分成兩個銀行,因此顯示爲每個512 MB。
- 也有可能將內存分成兩個不相等的銀行,如3 GB分爲1 GB和2 GB。
是的,我已經檢查忘記提及它,它是一個1GB的RAM棒(得到它爲512 MB)。我想確定以編程方式安裝相同。 'Win32_ComputerSystem'中的'TotalPhysicalMemory'屬性在4GB系統上給出了'RAM'爲3386 MB。 'Win32_PhysicalMemory'中的'容量'給出了4096 MB,這是正確的。 –
@SaurabhHarwande給你道具。我不知道TotalPhysicalMemory不會計算其他硬件使用的內存(例如共享視頻內存)。 [此鏈接](http://briandesmond.com/blog/getting-total-installed-memory-with-wmi/)和[此鏈接](http://www.computerperformance.co.uk/vbscript/wmi_memory。 htm)更多地解釋它。 – Tim