我试图得到我的电脑的ram的数量,但我没有得到正确的数量为什么

本文关键字:为什么 ram 我的 电脑 | 更新日期: 2023-09-27 18:17:43

在任务管理器中,我看到6gb内存中使用了4.7gb。

我使用这个类来获取我的ram:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
using System.Management;
namespace ScreenVideoRecorder
{
    class GetMemory
    {
        public static List<UInt32> DisplayTotalRam()
        {
            List<UInt32> uints = new List<UInt32>();
            string Query = "SELECT MaxCapacity FROM Win32_PhysicalMemoryArray";
            ManagementObjectSearcher searcher = new ManagementObjectSearcher(Query);
            foreach (ManagementObject WniPART in searcher.Get())
            {
                UInt32 SizeinKB = Convert.ToUInt32(WniPART.Properties["MaxCapacity"].Value);
                UInt32 SizeinMB = SizeinKB / 1024;
                UInt32 SizeinGB = SizeinMB / 1024;
                //Console.WriteLine("Size in KB: {0}, Size in MB: {1}, Size in GB: {2}", SizeinKB, SizeinMB, SizeinGB);
                uints.Add(SizeinKB);
                uints.Add(SizeinMB);
                uints.Add(SizeinGB);
            }
            return uints;
        }
    }
}

对于Form1中的测试,我做了:

List<UInt32> uints = GetMemory.DisplayTotalRam();

我看到现在在单元列表中使用断点:

index [0] i see: 33554432
index [1] i see: 32768
index [2] i see: 32

任务管理器4.7/6.0 (78%)

为什么我得到32 ?(3.2 gb)

我试图得到我的电脑的ram的数量,但我没有得到正确的数量为什么

在您的系统上,内存映射的I/O占用了4gb地址空间中的最后0.8 GB,这使得它无法用于寻址RAM。因此,当机器上加载了4gb的RAM时,Windows报告它只安装了3.2 GB。

在其他系统中,内存映射的I/O空间要比4 GB高得多才能解决这个问题。几年前我有一台戴尔笔记本电脑也有同样的问题,所以这并不罕见。