Answers:
是 有:有程序调用 VirtualLock 功能:
进程锁定的页面将保留在物理内存中,直到进程解锁或终止。保证这些页面在锁定时不会写入页面文件。
我相信 SetProcessWorkingSetSize 功能也可能有帮助。
对于那些认为我甚至是异教徒的人 提示 这个 威力 有用:
请注意,在内存中锁定页面可能有正当理由。一个正当的理由可能是用户正在运行CD刻录机,并且CD刻录机不断页面输出因此导致缓冲区欠载,从而创建过山车。在这种情况下,锁定内存缓冲区以使它们不被分页是有效的,即使这意味着计算机的其余部分也会慢慢爬行,因为这仍然比给用户一个过山车更好。还有其他正当理由 - 我的观点是,虽然它是 平时 不推荐将页面锁定在内存中,有效的情况仍然存在,我不认为杀死这个想法会对OP有帮助。
更新:看一看 流程黑客 的 Reduce Working Set
菜单选项。
SetProcessWorkingSetSize
。这是一种方式。如果当然,如果你不知道这意味着什么,因为你不是开发人员,那么显然没有什么可以做的。但它仍然有可能,并且说它不可能仍然是不正确的,它只需要比OP可能拥有更多的知识。
我找到的唯一方法是禁用页面文件。但是,它不是一个完美的解决方案:如果你接近或超过你的RAM限制,你将收到错误消息,它可能无法正确保存故障转储,所以如果你需要进行故障排除,请重新打开它。除此之外,我几个月来一直使用Win7没有页面文件。
我的经验:我有一个钢琴软件(1GB RAM使用率)的这个问题,在没有使用一段时间后会投入交换。几小时后弹奏钢琴键会导致混乱,因为交换不会重新加载足够快的声音来播放声音。 (然后我会把我的整个手臂放在每个钥匙上以强制重装!)
如果RAM是一个问题,我建议你购买更多(例如8到12GB的Windows 7 x64)。对于具有RAM意识的人来说,拥有大量的RAM是天赐之物。
但在此之前,您应该考虑购买SSD驱动器并对其进行交换。它将极大地加速交换恢复,并提供许多其他系统优势。 RAM在不使用时不提供好处。
页面文件的使用取决于很多因素。如果您使用大量程序并且同时没有足够的RAM用于所有程序,那么它们中的一部分(或全部)可能会被换出到页面文件中。
如果你有4GB的RAM,让我们说大约3GB可用,因为视频卡和其他资源用户阻止4GB的部分,你只使用一些不占用大量内存的程序,理论上你永远不需要交换文件。但是,Windows Vista和7在将程序交换到磁盘方面非常具有攻击性。
我曾经有一个设置,减少了Windows 7的swappiness(swappiness是一个Linux术语,但它同样适用于Windows,并且由于有一个注册表设置来驯服Windows交换侵略性,似乎微软同意勉强,虽然在一个井隐藏的方式),但我似乎无法找到它。搜索它是我在这里结束的方式。我发现这个设置的最佳替代方法是确保使用固定大小的交换文件(我在32位操作系统上使用4096-4096,在64位操作系统上使用12GB,因为我有6GB的系统RAM)在专用分区上。有一个备用的7200rpm 200GB驱动器,我将所有交换分区(Windows XP,7,7位64位和各种Linux)放在这个驱动器上。它似乎对我有用,但YMMV。
值得一提的是:当Windows检测到你经常使用某些应用程序时,它会将这些应用程序放入内存中以便加载更快。我认为信任windows可以在这里做点什么。