- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 GlobalMemoryStatusEx() 获取总系统内存:
MEMORYSTATUSEX memory;
GlobalMemoryStatusEx(&memory);
#define PRINT(v) {printf("%s ~%.3fGB\n", (#v), ((double)v)/(1024.*1024.*1024.));}
PRINT(memory.ullAvailPhys);
PRINT(memory.ullTotalPhys);
PRINT(memory.ullTotalVirtual);
PRINT(memory.ullAvailPageFile);
PRINT(memory.ullTotalPageFile);
#undef PRINT
fflush(stdout);
但是结果很奇怪,无法理解。
memory.ullAvailPhys ~1.002GB
memory.ullTotalPhys ~1.002GB
memory.ullTotalVirtual ~0.154GB
memory.ullAvailPageFile ~0.002GB
memory.ullTotalPageFile ~1.002GB
我的总物理内存是 8GB,但结果并没有接近它。所有值都小得多。
此外,每当我执行时,“总计”值都会不断变化。例如,另一个结果如下:
memory.ullAvailPhys ~0.979GB
memory.ullTotalPhys ~0.979GB
memory.ullTotalVirtual ~0.154GB
memory.ullAvailPageFile ~0.002GB
memory.ullTotalPageFile ~0.979GB
我做错了什么?
最佳答案
这是您缺少的部分:
MEMORYSTATUSEX memory = { sizeof memory };
MSDN :
dwLength
The size of the structure, in bytes. You must set this member before callingGlobalMemoryStatusEx
.
如果您检查了 GlobalMemoryStatusEx
返回的值,您可以通过在那里获取错误指示来发现问题。
关于winapi - Windows 上的 GlobalMemoryStatusEx() 结果错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28515155/
我在具有 16 GB RAM 的 Windows 10 上使用 c++ builder 10.2 Tokyo。如果我跑 uint64_t FreeMBs() { MEMORYSTATUSEX
来自MSDN page : “GlobalMemoryStatusEx 函数返回的信息是易变的。不能保证对该函数的两次连续调用将返回相同的信息。” 这是有道理的,但是我无法确定这是否是线程安全的。有人
我正在尝试使用 GlobalMemoryStatusEx() 获取总系统内存: MEMORYSTATUSEX memory; GlobalMemoryStatusEx(&memory)
为什么 GlobalMemoryStatusEx() 给出了巨大的总虚拟内存。它是否考虑了所有可以创建的页面文件? 系统详情: Windows 8.1、64 位进程、x64 处理器 int main(
基于以下链接:MSDN Docu 我正在尝试获取当前正在使用的页面文件的大小。 这是我获取值的方式: ActualPageFileSize = ullAvailPageFile - ullTotalP
如果您不从事或不了解 Windows CE 和 Compact Framework,请不要投反对票。谢谢。 有人知道这个函数在 WinCE 上是否可用吗?(如果是的话)DLL 是什么?我尝试从“cor
我继承了一个 C++ 项目,其代码位于 XP SP3 虚拟机上(是的)。 出于某种原因,即使包含了 afxwin.h(并且我包含了 winbase.h 是为了更好地衡量),当我编译应用程序时,我遇到了
我是一名优秀的程序员,十分优秀!