我不确定这是否是一个正确的问题,但有没有办法“强迫”应用程序使用phyiscal内存而不是页面文件?
更确切地说:我编写了一个应用程序(C ++)来分析一些测量数据。因此,它需要分配一个非常庞大的数组,这使得该进程使用大约12 GB的RAM。我确实安装了16 GB,所以这不应该是一个太大的问题。我启动了程序,它填满了我的RAM(直到剩下大约1GB)。我确实继续使用我的笔记本电脑一段时间,然后让它过夜运行。 在早上观看我的节目后,只有大约25%的节目在那之后实际上应该超过80%。查看任务管理器,我可以看到,它只使用大约1.8 GB的RAM而不是之前使用的12 GB。所谓的“提交”填充23 / 31.9 GB。
所以,我的物理内存似乎几乎是空的(可用的内存超过12 GB)并且程序运行速度非常慢。如果这甚至是它运行缓慢的原因:是否有办法强迫它使用物理内存? 此外,.exe在任务管理器中显示为“后台服务”。启动新实例时,它显示为应用程序。这可能导致内存限制吗?
编辑:在Windows 8.1 x64上运行。
答案 0 :(得分:0)
BYTE* buf = (BYTE*)GlobalAlloc(GMEM_FIXED | GMEM_ZEROINIT, size_buffer);