Windows内存管理器用于确定何时开始将页面交换到磁盘的阈值是多少?

Windows内存管理器用于确定何时开始将页面交换到磁盘的阈值是多少?,windows,memory,virtual,threshold,Windows,Memory,Virtual,Threshold,我在Perfmon计数器“内存”-“工作集”描述中看到此注释: 如果计算机中的可用内存高于阈值,页面将保留在内存中 进程的工作集,即使它们未被使用。有空的时候 内存低于阈值时,将从工作集修剪页面 我还没有找到任何关于这个阈值的文档。它是可用RAM的百分比?是在提交费用消耗所有可用RAM的时候吗?系统如何处理内核页面与用户模式页面 因此,我的问题是: 这个门槛是多少 有没有办法检测到它 不同版本的windows是否有不同的行为或阈值 这种情况是,我的进程将尝试使用尽可能多的内存作为可用的物理R

我在Perfmon计数器“内存”-“工作集”描述中看到此注释:

如果计算机中的可用内存高于阈值,页面将保留在内存中 进程的工作集,即使它们未被使用。有空的时候 内存低于阈值时,将从工作集修剪页面

我还没有找到任何关于这个阈值的文档。它是可用RAM的百分比?是在提交费用消耗所有可用RAM的时候吗?系统如何处理内核页面与用户模式页面

因此,我的问题是:

  • 这个门槛是多少
  • 有没有办法检测到它
  • 不同版本的windows是否有不同的行为或阈值
这种情况是,我的进程将尝试使用尽可能多的内存作为可用的物理RAM。一旦达到这个限制,我就可以在磁盘上释放和缓存某些内存块,为新东西腾出空间。它这样做是为了在内存不足时帮助减轻页面文件抖动。我想在内存管理器开始将页面交换到磁盘之前执行释放,因为内存使用量已经超过了神奇的阈值


我目前使用MemoryStatuex::ullAvailPhys值(由GlobalMemoryStatusEx填充)来标识可用物理内存量

Windows为程序和磁盘缓存使用尽可能多的RAM,因此在某个时候不会进行大量交换

如果您想要更多的RAM来运行应用程序,就必须减少磁盘缓存

有一个工具可以通过SysInternal设置磁盘缓存

cacheset.exe
你可以在这里找到它:


您可能不应该尝试这样做:谢谢您提供的信息。在这种情况下,我们对运行这个应用程序的机器有着重要的控制权,我可以准确地假设应用程序几乎以独占方式访问内存。因此,我并不担心与其他应用程序玩得好。:)您是否考虑过完全关闭虚拟内存?