Windows交换(页面文件):启用还是禁用?


28

从我的亲身经历中,我注意到,在Windows XP中禁用页面文件通常使我获得了我可以进行的任何其他软件更改中最快的速度提升。显然,当有大量RAM可用时,必须这样做。通常,我发现它在+ 2GB RAM的情况下可以很好地工作。我真正遇到过的唯一问题是加载Adobe Photoshop。

这真的是速度上的提高吗?还是我在想它?

注意:要真正将其关闭,您不仅要将其设置为0MB,还应将其禁用。否则,Windows将仅在需要时对其进行扩展以满足其需求。


9
注意:有是给司机的内存只有有限的量,被称为non-pagedpaged内存部分。当页面部分变满时,需要一个页面文件,作为一个游戏玩家,我曾看到一个游戏抱怨页面缓冲池内存是因为我在8 GB系统上禁用了页面文件。结论:页面文件是必需的,它们可以防止页面缓冲池耗尽,并确实可以加快系统速度
Tamara Wijsman

Answers:


18

Windows XP疯狂地将最小化的应用程序刷新到磁盘上。您可以尝试一下,开始下载大文件,并将所有内容最小化。很快,几乎所有的RAM都将用作torrent的文件缓存,而不是其他应用程序。禁用页面文件将防止此行为。

但是,在Windows Vista和Windows 7中,系统可以更好地处理这种情况。.因此,我不确定在这些版本中禁用页面文件是否会有很大不同。

某些游戏甚至在不需要时也需要页面文件,我最近在尝试播放从Steam下载的游戏演示时注意到这一点。尽管我有可用的RAM 6场演出比赛拒绝开始,直到我创建了一个很小,很小的页面文件.. 叹息

就个人而言,当我有足够的RAM时,我更喜欢没有页面文件。


自从问了这个问题以来,我一直都没有WinXP上的页面文件,这很棒。我还没有在Win7上真正尝试过它,所以我不能说对于较新版本的Windows是否值得。
乔·菲利普斯

我已经在Win7上尝试过了,但没有很好的经验。由于固态硬盘没有可用的,是有意义的只是有一个页面文件
乔·菲利普斯

是否具有页面文件与文件缓存行为没有直接关系。
Jamie Hanrahan

25

不要弄乱它,让Windows自行解决。

这个ServerFault答案是以下原因的最出色的解释:

许多人似乎认为Windows会根据需要将数据推送到页面文件中。EG:某物需要大量内存,并且没有足够的RAM来满足需求,因此Windows在最后一刻开始疯狂地将数据从RAM写入磁盘,以便为新需求释放RAM。

这是不正确的。

重点:

完全删除页面文件可能会导致更多磁盘抖动。


12
删除页面文件将如何导致任何磁盘抖动?如果有的话,它应该停止抖动。如果RAM不足,Windows将给出错误消息-如果已禁用Windows,则不会决定使用swap。
乔·菲利普斯

2
d03boy,阅读SF帖子。如果必须将活动进程内存移出ram,这将导致更多的磁盘活动。
神秘主义者

3
@ d03boy:答案在链接中。基本上,如果您使用过多的RAM,则将以某种方式使用HD。如果删除了页面文件,则当必须分配更多的RAM时,HD仍可用于存储程序代码(只需按需从原始文件中读取)。
肖恩

1
@Factor,如果Windows使用过多的物理RAM,只会给您一个错误。它不会从RAM AFAIK @Darth中移出任何内容,链接的帖子听起来好像无论分页是打开还是关闭都在做
Joe Phillips

2
但是,对于Windows XP而言并非如此,因为Windows XP具有可怕的内存管理。阅读我的答案。
zidar,2009年

7

从微软回答“禁用交换文件”

http://social.answers.microsoft.com/Forums/zh-CN/w7performance/thread/0bd8a75c-2607-4468-8342-c35ea82ea670

微软MVP Ken Blake

这样做有什么性能提升吗?谢谢。

你是否可以?是。你应该?不,绝对不是。

这样做可以提高性能吗?不,这可能会导致性能损失。

首先,2GB的RAM并不是很多,这是大多数人应该拥有的最小内存。

其次,如果没有页面文件,则无法使用所有的RAM。这是因为Windows会预分配虚拟内存,以预料可能会需要虚拟内存,即使从未使用过分配的内存。如果没有页面文件,则必须在实际内存中进行该分配,从而占用该内存并阻止其用于任何目的。

第三,没有页面文件永远不会有好处。如果不需要,则不会使用。不要将分配的内存与已用内存混淆。

Ken Blake,自2003年以来担任Microsoft MVP(Windows桌面体验)


跳动呢?如果禁用了HD,使用量会减少吗?这似乎不是完整的答案。更何况,这个问题是关于XP和这个答案是关于Win7的
乔·菲利普斯

我不认为MVP是正确的,考虑到足够的内存,您可以禁用交换文件。只要确保您不会用完内存即可。
Tamara Wijsman

1
@JoePhilllips-不,简单地说,如果数据存储区+程序存储区超出了系统存储区(没有页面文件),那么程序的可用空间会减少,以便为数据腾出空间,因为始终可以从原始程序文件中重新获取程序。因此,如果您有8GB内存,6GB数据和4GB应用程序,则您的操作系统只有4GB程序之间共享2GB。它将不断读取代码并损坏磁盘。如果实际只需要4GB的数据,并且您有2GB的页面文件可以将其余的文件交换到其中,那么操作系统将能够使用其他4GB的程序,因此不会造成任何麻烦!
Mark Booth,

6

我会说启用

无论您有多少RAM,在某些情况下页面文件至少都是有用的。另外,应该注意的是,当有页面文件时,大部分时间在大部分Windows运行时中都会被卸载。原因?虽然它在内存中是必需的,但目前不需要。将其放在交换文件中可能意味着需要花费更长的时间来访问,但是却为实际使用的程序留出了更多的RAM。

性能提高的原因是因为您迫使整个系统加载到RAM中,这显然要快得多。但是,我的猜测是,当您立即开始使用大量程序时,尤其是像Firefox和Photoshop这样的内存密集型程序时,这种改进马上就会出现。*

但是,有可能由于您的计算习惯而永远不会遇到该问题。我知道,如果我尝试关闭页面文件,那我将一无所获。因此,如果您确实想尝试将其关闭一段时间,然后看看会发生什么情况,则可以随时稍后将其重新打开。

*“该段是相当多的猜测” /免责声明;)


自从我最近升级以来,我现在有4GB的RAM(尽管winxp只能看到3.5),而且页面文件关闭了几个月没有任何问题,只能重启一两次。到目前为止,我确实使用了相当繁重的程序(包括photoshop),没有任何问题。
乔·菲利普斯

在这种情况下,请随时忽略我的建议,并做适合您的事情。尽管Mystic因素的帖子对相同的结论有更好的论据,所以至少要牢记他在说什么;)
Sean

也许我会重新打开它,看看是否有帮助。我只是无法想象不断写交换对我的硬盘有好处。
乔·菲利普斯

5

我会说启用,但将其移动到另一个驱动器,最好是其他I / O猪不使用的驱动器。这通常比完全禁用页面文件给我更快的速度。当然,最大化RAM是一个很好的并行优化。


1
如果这样做,请确保将页面文件移动到另一个物理设备。如果有时间的话,将其移动到同一设备上的另一个分区是浪费的,除非您具有工业级硬盘驱动器(如SCSI)。
帕维尔Polewicz

3

我在具有4GB物理内存的32位Windows系统上禁用了交换文件。开启虚拟内存不会为系统增加任何地址,而关闭虚拟内存则意味着我永远不必等待Windows换入或换出。


6
您运行了什么时序测试,以及在什么样的负载下运行?
迈克尔·科恩

2
没有硬数据==仍然是主观轶事
罗马尼亚,2009年

4
当然,这是一个主观轶事-我是否曾经提出过其他要求?我不确定为什么人们要求计时数据:我不在Windows上运行服务器(除非必须这样做),而是在其上运行个人台式机和游戏机。对于这样的机器,主观反应就很重要。
kquinn

1
我想,您运行的时间从未超过一次?即使在32位系统上,也可以在任何给定时间分配4GB以上的物理RAM。您甚至可以使用虚拟内存API重新映射地址空间的各个部分,从而为单个进程分配超过4GB的RAM。

1
嗯,您是说可以分配超过4GB的虚拟RAM吗?当所有物理RAM用完后,您将开始从MMU中获取分页错误​​,这将导致交换。没有分页文件,将交换掉所有抛出的DLL / EXE数据。使用分页文件,就可以将任何内容写入页面文件。
JBR威尔金森

3

我在具有4GB物理内存的32位Windows系统上禁用了交换文件。开启虚拟内存不会为系统增加任何地址,而关闭虚拟内存则意味着我永远不必等待Windows换入或换出。

不。地址空间如下:每个进程都有其自己的31位地址空间(低2GB),内核也有自己的31位地址空间(无论哪个进程拥有当前线程,该地址空间都相同)。这将为您提供2GB *可用用户模式地址空间的进程数。如果不进行交换,则用户模式空间限于物理内存大小减去内核内存大小(通常为200 MB)。当然,系统可以分配多少虚拟内存可能会有一些人为限制,但是我不是Microsoft许可策略方面的专家。

另外,请注意,禁用交换并不一定意味着不会有导致磁盘访问的页面错误。交换文件不是内存映射到的唯一文件。每个可执行文件(内核模式驱动程序除外的.exe或.dll)都有自己的磁盘备份-即exe文件。当然,已在内存中修改过的页面(例如可写数据段,IAT甚至代码段(例如,打包的可执行文件))需要单独的交换支持,但是绝大多数代码/静态数据/资源不需要交换,并且...可以在系统资源不足时从内存中删除。当进程需要访问此类数据时,无论是否启用交换,都会发生页面错误和磁盘访问。


2

肖恩·尼曼(Sean Nyman)此前曾表示:“尤其是像Firefox和您的Photoshop这样的内存密集型存储设备,这种改进将很快到来。”

我只是想在Firefox中添加它,如果您about:config在地址栏中键入以转到Firefox中的高级设置,则可以为其添加新字符串browser.cache.disk.enable并将布尔值设置为false,这将强制Firefox仅缓存到RAM。您还可以添加字符串browser.cache.disk.capacity并指定一个值,以控制Firefox将在RAM中用于浏览器缓存的空间。我希望这有帮助。我已经设置要在RAM中缓存,而Firefox总是超级快。

我在这台笔记本电脑中还有一个用于系统驱动器的SSD驱动器,在辅助托架中有一个500GB的旋转驱动器用于存储,并且我将TMP,TEMP和Temporary Internet Files文件夹设置为指向Windows 7 Pro中的旋转驱动器,并将我的pagefile.sys移到D上的旋转驱动器上,我的系统就像闪电一样快速运行。无论如何,我有4GB的RAM,所以我认为Windows 7甚至不会使用太多的页面文件,但是打开它有什么害处?


无论您有多少内存,Windows出于某种原因都喜欢使用页面文件
Joe Phillips 2010年

0

禁用交换文件可能是可以用来提高计算机性能的最重大的改进。在典型情况下,大多数笔记本电脑使用具有移动部件的物理磁盘。与计算机中的内存速度相比,这些驱动器非常慢。因此,如果您具有强制Windows将其保持在“可能的范围内”并且从不写入磁盘的权限,则只有在必须为磁盘中尚未存在的文件打磁盘时,它才会变慢。内存中的所有内容将运行得更快。这个想法是缓存整个操作系统,以便它仅在需要内存中尚不存在的内容时才对物理磁盘进行读写。

RAM读/写发生在纳秒级,而物理磁盘发生在毫秒级。

现在要考虑的是,现在有一些新的交换文件选项变得实用。如果您使用固态磁盘或使Windows将交换文件放在SD卡上,则性能也会大大提高。

我的$ 0.02


3
禁用交换并不意味着所有内容都保留在内存中。这意味着从内存中清除掉的内容必须在需要时从磁盘上的原始位置读回。这意味着您的系统将变慢。请参阅我在答案中链接的SF帖子。
神秘主义者

3
这就是为什么要对其进行优化以使其永远不需要打入磁盘的原因。我以前做过,而且确实可以。
Axxmasterr
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.