【问题标题】:Get total number of RAM bytes on windows获取 Windows 上的 RAM 字节总数
【发布时间】:2014-10-17 17:18:22
【问题描述】:

我正在尝试获取 RAM 字节的总数。我不确定我的结果的有效性。

我的电脑有 8GB 内存。控制面板将此称为 8.00GB(7.88 GB 可用)

使用 GetPhysicallyInstalledSystemMemory 调用乘以 1000,我得到 8388608000 字节(假设 Windows 引用的千字节确实有 1000 字节)。

当我运行 wmic ComputerSystem get TotalPhysicalMemory 时,我得到 8462008320 字节。

如果 windows 不遵守约定,将调用结果乘以 1024 时,我得到 8589934592 字节,这似乎比以前的结果更不可能。

以防万一,我正在使用两个 Crucial Ballistix Tactical BLT2C4G3D1608ET3LX0CEU 内存模块,每块 4GB。

【问题讨论】:

  • 此限制取决于操作系统和应用程序位数。请参阅this chart。总安装内存与在 C 中可以分配多少无关。每个进程的限制范围可以从 2GB 到 8TB。你的数学是否正确并不重要,因为你开始的值是不正确的。
  • 按照惯例,RAM 是以 1024 的倍数衡量的。也许您正在考虑以 1000 的倍数衡量的硬盘制造商。8462008320 / 1 GB 确实等于 7.88。跨度>
  • 我看到 8589934592 是我正在寻找的值(所有安装的 RAM 以字节为单位)。我认为在 Windows 上一千字节是 1000 字节,但我错了。 wmic 调用似乎返回了可用内存,而我正在寻找总量。感谢您澄清这一点!
  • 已安装 RAM 的数量与您可以在 C 程序中分配多少有关,这是一个流行的神话,21 年来一直不正确。您正在需求页面虚拟内存操作系统上运行。您分配虚拟内存,仅在您实际访问内存时才使用 RAM。 32 位程序最多可以分配 2 GB。一个 64 位程序可以分配尽可能多的页面文件,通常比 RAM 多得多。
  • “我以为 Windows 上 1 KB 是 1000 字节” 这是一个新的! :)

标签: c++ c winapi ram


【解决方案1】:

GetPhysicallyInstalledSystemMemory 乘以 1024 的结果就是我正在寻找的答案。这是系统上安装的 RAM 字节总数。

【讨论】:

    猜你喜欢
    • 2017-04-25
    • 2013-11-15
    • 1970-01-01
    • 1970-01-01
    • 2013-10-07
    • 2020-07-26
    • 2010-11-15
    • 1970-01-01
    • 2017-10-14
    相关资源
    最近更新 更多