gpt4 book ai didi

c# - 为什么这个功能在我的主机上很好用,但在虚拟机上却不行? (GetPhysicallyInstalledSystemMemory)

转载 作者:行者123 更新时间:2023-11-30 16:38:57 26 4
gpt4 key购买 nike

我有以下代码(正确地)给出了我计算机上安装的总内存(注意,不是总物理内存,它会比安装内存少一点):

using System.Runtime.InteropServices;

[DllImport("kernel32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool GetPhysicallyInstalledSystemMemory(out long TotalMemoryInKilobytes);

public float getInstalledRAM()
{
long memKb;
GetPhysicallyInstalledSystemMemory(out memKb);
return float.Parse((memKb / 1024 / 1024).ToString());
}

但是,当我在我的测试虚拟机上运行它时,它给我的内存比应有的少了 1GB(不知道这个数量是否重要,但最重要的是它给了我一个错误的值)。这有什么可能的原因吗?

最佳答案

Windows 通常四舍五入总可用内存。您在 VM 下看到的结果可能仅仅是由于整数运算截断了两个除法的结果。

强制双算术除以 1024.0 至少一次,然后查看错误是否仍然存在。

关于c# - 为什么这个功能在我的主机上很好用,但在虚拟机上却不行? (GetPhysicallyInstalledSystemMemory),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53819100/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com