GlobalMemoryStatusEx() 提供的总虚拟内存为 127 TB
GlobalMemoryStatusEx() gives total virtual memory as 127 TeraByte
为什么 GlobalMemoryStatusEx() 提供了巨大的总虚拟内存。它是否考虑了可以创建的所有页面文件?
系统详细信息:
视窗 8.1,64 位进程,x64 处理器
int main()
{
MEMORYSTATUSEX mex;
mex.dwLength = sizeof (mex);
GlobalMemoryStatusEx(&mex);
std::cout<<mex.ullTotalVirtual<<" "<<mex.ullAvailVirtual;
}
140737488224256 140737478111232
编辑:
我在 Windows 10 上得到了相同的结果,我很想知道这个127 TB
数字是如何出现的。为什么系统没有考虑到我的磁盘上没有 127 TB 的空间?
(x64 系统)上的 32 位进程仅显示 2gb,这是用户模式的 32 位进程的可访问地址限制。为什么在 32 位进程的情况下它不考虑页面文件?
是的。从 MSDN:
您可以使用
GlobalMemoryStatusEx()
来确定应用程序可以在不严重影响其他应用程序的情况下分配多少内存。
相关文章:
- 了解 Linux 虚拟内存:valgrind 的 massif 输出显示了有和没有 --pages-as-heap 的主要差异
- 为什么我只能在 4 GB 的虚拟内存空间上分配 2 GB?
- AWS pandas 安装出现错误:虚拟内存已耗尽:无法分配内存
- 如何判断虚拟内存页是否已锁定
- 如何使用一个 VirtualFree 调用删除多个相邻的虚拟内存分配?
- Windows 32 位 mfc 应用程序的虚拟内存中的地址
- 如何将x64机器代码写入虚拟内存并在C++中为Windows执行
- 读取虚拟内存时C++缓冲区溢出
- 在 Linux C++ 中获取虚拟内存最大映射计数
- GlobalMemoryStatusEx() 提供的总虚拟内存为 127 TB
- 在虚拟内存中分配大型类C
- 程序C++中的虚拟内存大小增加
- CC1PLUS:虚拟内存耗尽
- Linux的VirtualQueryEx替代方案-如何获得另一个进程的虚拟内存范围
- 在Linux中,多个进程使用文件指针读取文件时使用的共享虚拟内存
- 我已经将虚拟内存设置为20GB,但由于内存不足,代码仍然无法工作
- C++/Win32 在虚拟内存中创建文件
- 优化数据结构,使其充分利用虚拟内存
- 如何知道应用程序中可用的虚拟内存
- 虚拟内存地址所在的位置