即使我有可用的RAM,为什么最初切换到应用程序时,它们的速度这么慢?


9

在我的Windows 7(64位)PC上,当我有一些资源匮乏的程序正在运行时,还有六个其他程序,当我切换到我已经有一段时间没有使用的应用程序时,需要很长时间才能做出响应而且我可以听到硬盘工作很多。我假设它正在从页面文件中获取数据。在Windows任务管理器中,它表明我正在使用大约75%的物理RAM,其余部分则在高速缓存和空闲内存之间分配约50/50。

即使有可用的RAM,是否也将数据移出RAM仅在磁盘上?如何使其他程序响应更快?从一个程序切换到另一个程序时,是否可以将我的RAM从4GB增加到8GB?


请注意,您需要Windows 7 64位才能使用超过4GB的空间。添加更多的内存会很有帮助,然后将Pagefile设置为Min 200MB / Max 200MB。
Michael9000

我敢打赌,这可能是因为“我有一些资源匮乏的程序正在处理”部分。
surfasb

Answers:


7

Windows必须在吞吐量和延迟之间进行权衡。

如果将应用程序保留在RAM中,即使很长时间不使用它们,吞吐量也会受到影响。已使用但空闲的物理RAM将减少可供其他应用程序和系统使用的RAM。

Windows决定调出长时间未访问的内存。这样可以将更多的物理RAM用作磁盘缓存,并且可以显着提高应用程序的吞吐量。

权衡是,当这些应用程序最终确实需要访问一段时间未访问的内存页面时,它们可能不会驻留。在这种情况下,应用程序必须等待片刻,然后再将它们读回RAM。

Windows通常在做出这些折衷方面做得非常好,我不建议您尝试对其进行过多调整。您可以使延迟更好,但是将对吞吐量造成巨大的损失,更糟糕的是,您可能会陷入某些无法使用的状态。(例如,如果禁用分页文件,从现在起两个月后,您可能会发现您正在编辑大图像或其他内容,并且由于内存分配总是失败而无法保存。)

当然,您可以随时添加更多RAM。现在真便宜。这使得Windows首先不必进行任何权衡的可能性较小。


1
至于禁用分页文件,您的系统可能会崩溃。
surfasb

6

Windows将把程序分页到内存不足的地方并放到磁盘上。我不知道它使用的算法,但是如果看应用程序空闲的时间,我不会感到惊讶。

Windows将尽力使可用物理RAM的容量最大化,因此将内存升级到8GB甚至12GB可以提高系统的响应能力-尤其是在运行多个“资源匮乏”的应用程序时。


3
它肯定会查看内存空闲了多长时间。当Windows需要更多可用的物理RAM时,它将丢弃(或分页)的第一件事是很长时间未访问的内存页。
David Schwartz

0

您可以在Windows任务管理器中检查哪个程序正在使用大量RAM。

从个人经验来看,我发现在具有4GB + RAM的PC上不需要交换文件。您可能要完全禁用交换功能,以查看是否是导致问题的原因。

另外,还有一些我更喜欢关闭的Windows服务,因为它们会产生很多不必要的磁盘I / O:Superfetch,ReadyBoost,Windows Search,Windows Defender,Volume Shadow Copy和Distributed Link Tracking。


2
检查BlackViper的站点,看看您可以安全禁用哪些服务
Michael9000

1
关闭Superfetch和页面文件是一个巨大的错误。这已经被讨论了无数次。
surfasb
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.