【问题标题】:Any way to limit physical memory usage? (Page file is OK)有什么方法可以限制物理内存的使用? (页面文件没问题)
【发布时间】:2014-05-08 17:58:44
【问题描述】:

我正在编写一个程序,它需要比我的系统更多的内存。

我有什么方法可以人为地限制其物理内存的使用?
即一旦超过限制,程序应该开始向/从磁盘分页——无论物理内存是否实际可用。 (这样我正在运行的其他程序仍然可以从内存中运行,并且不需要经常访问页面文件。)

【问题讨论】:

  • 我猜你已经把它设为最低优先级了?
  • @BenVoigt:是的,但我真的希望这是一个限制,而不仅仅是一个优先事项。
  • 限制对于测试它在 RAM 较少的系统上的性能可能很有价值。但只是为了保护其他程序,我认为优先是正确的方法。您还可以在虚拟机中运行 hog,并根据您希望它拥有的 RAM 数量进行配置。
  • @BenVoigt:好吧,如果可能的话,我还是想试试“错误”的方法,看看哪一种效果更好。我觉得硬限制可能会更好,所以我想在排除之前尝试一下。

标签: windows winapi visual-c++ memory out-of-memory


【解决方案1】:

没关系,我刚刚找到答案:SetProcessWorkingSetSizeEx

【讨论】:

  • 请注意文档中的附带条件:“尝试”和“如果可用内存不足”。换句话说,如果内存管理器认为最好这样做,它仍然可以忽略您配置的最大工作集 - 但这应该不是问题,我相信它相当可靠并且通常知道它是什么正在做。 :-)
  • @HarryJohnston:这部分文档是从SetProcessWorkingSetSize 的文档中复制粘贴过来的。如果您查看这两个函数之间的区别,您会发现有一个 QUOTA_LIMITS_HARDWS_MAX_ENABLE 标志设置了硬限制。
  • 优秀。我错过了。
猜你喜欢
  • 2010-10-10
  • 1970-01-01
  • 2010-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多