Answers:
页面文件永远不会提高性能,但也不一定会降低性能(通过适当的内存管理)。但是,在没有页面文件的情况下运行只会增加系统对请求内存不可用的应用程序的不稳定性。
除非您的操作系统在内存管理方面特别糟糕,否则具有6GiB内存的页面文件应该很少使用。这并不是说它根本没有用。即使在有足够的可用内存的情况下,IIRC MS Windows在进行页面调度时还是有点疯狂。(为什么,我永远不会知道。)
但是,当您没有使用页面文件时发生的情况可能是足以启用它的原因:硬崩溃。大多数应用程序期望收到他们请求的内存。如果不这样做,它们就会崩溃。(啊,但是过去必须生活在几千个字节中的美好时光已经过去了……对于所有太多的开发人员来说,处理内存管理的做法也是如此。)
如果正确构建了一个应用程序,它将失败。(幸运的是,它根本不会失败。但是不要指望它。)对于大多数应用程序,您将面临巨大的失败。此外,您拥有的应用程序越接近该限制,就越有可能看到系统范围内的不稳定性。
从我自己的经验来看。Windows XP,4GiB,无页面文件。Perf很棒。直到我们开始接近4GiB限制。然后事情变得发疯了:应用程序崩溃,菜单项仅部分出现(或根本不出现),按钮什么也没做,等等。我切换回页面文件,即使性能变差了-整体稳定性也很简单更好,更重要。
现在,也许您不使用任何应用程序或在能够推动6GiB的应用程序中工作,但是我可以想到您可能会遇到的一些情况:视频编辑,摄影编辑,音频混合和制作等。本质上是您要处理大量数据的任何事物(使用或流式处理)。当这些数据超出您的存储能力时,您的应用很可能会变得“糟糕”。
Mark Russinovich的这篇文章将告诉您有关页面文件的所有信息。
我不知道“ cache”是否是关于页面文件功能的正确术语。高速缓存是可快速访问的数据临时存放点。当物理RAM的争用过多时,操作系统会将内容“错误”出到页面文件中。因此,这是RAM溢出的权宜之计,可以防止程序由于内存不足而严重崩溃。但是我确实相信Windows会尝试将一段时间内未访问的内容放入页面文件中(Linux也可能这样做),因此从某种意义上讲,它是一个缓存,但实际上不是其主要功能。
无论如何,请阅读文章。它将为您提供有关将页面文件设置为什么的良好指导。正如@Sandeep Bansal所说,可能偶尔会有游戏要求您将其作为“需求检查”的一部分才能运行(但我不知道任何游戏)。
编辑:此示例可以帮助您了解页面文件的角色:
假设您有512MB的RAM。您打开了许多程序,其中包括一个最小化的浏览器,其本身消耗250MB的RAM,并且此时正在运行的所有内容的总RAM使用量为500MB。
因此,然后启动另一个要分配150MB RAM的程序(例如,文字处理器)。内存不足。但是,如果我们有分页系统,那么包含最小化浏览器的内存页可以分页到磁盘上。这样就可以加载新程序了。
现在,假设您想稍后返回浏览器。好吧,它需要“分页”刚刚发送到磁盘的内容。如果那时有足够的可用RAM,则可以毫无问题地做到这一点。如果没有,则必须先将其他页面调出。如果有很多程序在争夺CPU并且分页不断,那么事情就会变慢,并且您会遇到“崩溃”的情况。 所有这些分页输入和输出都会导致性能降低,但可以避免由于内存不足错误而导致程序“硬”崩溃。这就是页面文件的目的。 分页过多(即“颠簸”)可能不会比仅仅放弃的程序好,因为它在大多数时间无法获得更多的RAM。
现在,您将看到,如果存在算法来预测在给定时刻可能未使用的内容,那么操作系统可以“分页”它认为不会立即使用的内容。因此,即使Windows具有足够的RAM,它也会使用存在的页面文件来说明Windows。它正在尝试提供尽可能多的RAM。Windows就像Linux,自由RAM充当磁盘缓存,因此,如果正确执行平衡操作,则可以提高整体性能。这就是OS设计的全部内容,也是为什么要花10年的时间才能从成千上万的程序员中获得好的操作系统的原因。
因此,实际上还要回答您的问题,这是禁用页面文件的唯一错误。回到我提供的示例,如果没有页面文件,您将根本无法启动浏览器,或者编写得不好,没有经过防御性编程以预期OOM错误的程序可能真的很奇怪。
in general having [a page file] will mean more usable memory being available to the system
。等一下 更多可用内存?> 3 GiB的永久未使用RAM空间不够吗?(感到困惑,因为我很少使用超过2个GiB。)
页面文件不仅仅用于存储故障转储,它本质上也不是为此目的而创建的。
页面文件存在,因此它可以存储RAM不需要保留的数据,就像对不需要在内存中存在的项进行高速缓存一样,从而为其他事物提供更多的RAM。
没错,如果您有6GB RAM,则可能不需要页面文件,但是某些项目可能需要页面文件。我记得有些游戏需要页面文件,如果有一个页面文件也很有用。
创建500MB页面文件并没有什么害处,只是为了避免某些过程需要它时出现问题。
第一步是了解什么是缓存,或者更确切地说,不同的缓存用于什么。
CPU的内部缓存很小,因此可以存储OP结果,标志状态和计算出的地址。在双核上,我相信内部缓存约为1mb。它的速度非常快,只能由CPU内部访问,并且受超频CPU热量的影响最大。
2级缓存充当CPU到内存事务的高速缓冲区,并且还保留通过预取收集的代码线程。我相信在双核上,典型安装将具有6mb的lvl2缓存。内部高速缓存虽然速度较慢,但速度较慢,仅内存控制器和CPU可以访问,并且位于总线上的专用线上。
页面文件确实是高速缓存,因为它存储了可能存在或可能不存在于内存中的数据。操作系统可以将分页文件用于各种任务,其中之一是保存尚未提交到磁盘的数据文件的当前状态。如果页面文件不存在,则由第三方应用程序在内部提供此功能。这种情况的问题在于,在涉及垃圾回收时,许多程序的运行情况不佳,并且磁盘上还留有虚假的.temp文件。这些残留物不是安装清单的一部分,它们可能会妨碍卸载过程并降低磁盘访问速度。
我认为交换文件通常是一件好事。的确,如果您的系统中安装了Ram,并且它专用于1个特定任务,并且该应用程序负责所有这些事情,那么可能不需要交换文件。一个示例可能是在Windows平台上运行的Arcade视频游戏,这些视频游戏通常仅安装了现有设备所需的驱动程序,并且不太可能遭受驱动程序争用。但是,在大多数情况下,大多数应用程序并不能解决可能出现的所有潜在问题,尤其是那些包含其他第三方应用程序和驱动程序争用影响的问题。
尽管在添加页面文件的短期内您可能会注意到性能有所下降,但从长期来看,性能应保持一致。开始时没有页面文件似乎更快,但是随着时间的流逝,性能将大大降低。
史蒂芬·马尔姆(MCP)。
个人经验
现在,我的8GB RAM笔记本电脑在阻止创建/使用页面文件方面存在问题。我的生活是地狱。我不断收到“内存不足”的提示,应用程序崩溃等。使用3个程序每个占用1-1.5 GB(例如,Web浏览器,带有特殊插件的Visual Studio等),真是步履蹒跚。
另一个论点
使用物理RAM缓存中的数据非常快。您拥有的“更多”物理RAM越多,它可以容纳的缓存就越大。OS可以从物理RAM移至页面文件的休眠数据越多,则释放更多的物理RAM用于缓存频繁访问的数据。
假设您玩了一些游戏,当您更改位置时会加载位置数据。您还具有运行的网络浏览器,该游戏剩下2GB的空间用于单个位置。如果没有页面文件,则每次更改位置时,都会从HDD缓慢加载数据。对于页面文件,未使用的Web浏览器数据将发送到该页面文件,并且宝贵的物理RAM将用于存储多个位置的数据,从而加快了位置加载的速度。