如何控制 RAM/交换使用

Dar*_*qer 19 windows-7 performance swap

有没有办法(应用程序)在应用程序级别控制 RAM/交换使用策略。

我有一些我一直在使用的应用程序,我希望它们一直保留在 RAM 中,还有一些应用程序我很少使用,它们可能会被抛出以按需交换。我知道默认配置的窗口应该给我最好的性能,但我想检查我是否可以获得更多:)。

我使用Windows 7。

use*_*686 9

是的,有:让程序调用VirtualLock函数:

进程已锁定的页面将保留在物理内存中,直到进程将它们解锁或终止。这些页面在被锁定时保证不会被写入页面文件。

我相信SetProcessWorkingSetSize函数也可能有帮助。


对于那些认为我是异教徒甚至暗示可能有用的人:

请注意,锁定内存中的页面可能有正当的理由。一个有效的原因可能是用户正在运行 CD 刻录机,而 CD 刻录机不断地换页,从而导致缓冲区欠载,从而产生过山车。在这种情况下,锁定内存缓冲区以便它们不会被调出是有效的,即使这意味着计算机的其余部分会变慢以爬行,因为这仍然比给用户一个过山车要好。也可能有其他正当理由——我的观点是,虽然通常不建议将页面锁定在内存中,但有效情况仍然存在,而且我认为取消这个想法对 OP 没有帮助。


更新:看看Process HackerReduce Working Set菜单选项。


mto*_*one 5

我发现的唯一方法是禁用页面文件。然而,这不是一个完美的解决方案:如果您接近或超过您的 RAM 限制,您将收到错误消息,并且它可能无法正确保存故障转储,因此如果您需要进行故障排除,请将其重新打开。除此之外,几个月来我一直在使用没有页面文件的 Win7。

我的经验:我在钢琴软件(1GB RAM 使用量)上遇到了这个问题,它会在一段时间不使用后被扔进交换区。几个小时后弹奏钢琴键会导致一团糟,因为交换不会重新加载足够快以播放声音。(然后我会将我的整个手臂放在每个键上以强制重新加载!)

如果 RAM 是一个问题,我建议您购买更多(例如,Windows 7 x64 为 8 到 12GB)。对于具有 RAM 意识的人来说,拥有充足的 RAM 是天赐之物。

但在此之前,您应该考虑购买一个 SSD 驱动器并将您的交换设备放在上面。它将大大加速交换恢复,并提供许多其他系统好处。RAM 在不使用时不会提供任何好处。

  • 我有。是。使用。赢7。和。不。页面文件。为了。几个月。没有。A. 搭便车。 (7认同)
  • 做。不是。删除。这。页。文件。曾经。 (3认同)
  • @Randolph:MS 知道他们在说什么,因为他们知道他们的客户并不总是计算机专业人士。但是对于那些真正知道页面文件做什么和不做什么的人来说,没有理由强迫他们进行他们不需要的练习。 (3认同)
  • @Randolph:如果你在没有系安全带的情况下超速行驶,你可能会死,也可能会杀死其他人,更不用说增加其他人的保险费用了。如果您的计算机将内存调出,最糟糕的情况是您将损失一点时间,具体取决于具体情况。你不觉得这里的类比有一点(阅读:很多)错误吗?另外,你用过Linux/Unix吗?有没有注意到与 Windows 不同,它们如何为您提供足够多的绳索来吊死自己?人们仍然在使用它们——这就像在影响下开车一样吗? (2认同)