简洁版本:
我有一个 4GB RAM 的系统,另一个 8GB RAM 的系统。两者都运行 Windows 7,并禁用分页文件。现在奇怪的是,在 Windows 7 提示没有更多内存可运行新程序之前,我可以打开相同数量的程序。我本以为,有了双倍的内存,我可以在 RAM 耗尽之前打开更多程序。
长版本:
有些事情对我来说不太对劲。几年前,我有一个 32 位系统,运行 Windows 7,有 3 个或4 GB RAM。我已经关闭了页面文件,因为这样系统运行速度会更快。
以前我可以打开 Visual Studio、MSSQL Management Studio、几个 Firefox 选项卡和几个 Chrome 选项卡。这些是适合 3 或 4 GB RAM 的。
现在我有一个 64 位系统,运行 Windows 7,8 GB 内存,分页文件已关闭。
我可以打开相同数量的程序:Visual Studio 的一个实例、MSSQL Management Studio、几个 Firefox 选项卡和几个 Chrome 选项卡。
现在我的问题是,这怎么算?我真的感觉不到 4 GB 和 8 GB RAM 之间的区别。我一直在考虑购买更多 RAM,但主板不支持更多。但即便如此,我也不确定这是否会有所不同,因为 RAM 似乎在某些地方被浪费了。
我该怎么做才能确定 RAM 分配在哪里,更重要的是,我该怎么做才能保持 RAM 未分配/以便我可以将其用于我的目的,而不是用于谁知道什么隐藏的 Windows 功能。
编辑:
我已经关闭了分页,因为写入磁盘会降低整体性能,而且我认为 RAM 数量应该足够了。
我认为这里有一个问题,因为如果我在 8 GB 的系统上打开一些其他程序,那么windows 警告我内存不足,我应该关闭一些程序。
答案1
查看 Windows 7 系统中 RAM 使用情况的一种方法是使用程序 RAMMap。
您可以在此处看到,即使有 32GB 的内存(多得离谱),系统也几乎用完了所有内存。在这里,大约有 4GB 的内存用于所有正在运行的程序,其余的内存则被缓存中的文件填满。文件缓存(或称为系统缓存)或此处称为待机列表。
每当需要更多空间用于其他内容时,待机列表中的内容将被从 RAM 中丢弃(释放)。我会说,有时缓存释放似乎很慢,好像释放的量很少。Windows 7 的一些更新改变了这种情况,这些更新之后它表现得更好。
RAMMap 还可用于清除这些缓存、工作集和其他内容。RAMMap 可以手动清除缓存中的内容,也可以手动清除不应清除的内容,这些内容必须重新加载(查看空菜单项)。您必须手动刷新 RAMMap 的显示观察它的变化。
RAMMap 还可以向您显示位于不同位置的每个文件以及许多其他数据。
查看主要信息的更简单、更内置的方法是使用资源监视器,然后转到“内存”选项卡,您将获得如下视图。(resmon.exe)
您可以在底部看到这个待机量,这些量只是将 RAM 用于文件缓存,如果需要用于其他目的,则仍将其视为可用内存。另请参阅他们称之为可用的量。
我不会说系统完全按照每个人想要的方式完美地使用 RAM,但一般来说(至少)它所做的事背后都有某种目的 :-)
Win7 在 4GB 左右的 RAM 上也能很好地运行,8G 在大多数情况下都能满足需求,其余的内存也会用到,但除非你有很大的需求,或者运行需要内存的程序,否则没有内存你也不会死。通常,真正需要超过 4-8GB 内存的人知道他们为什么这么做。
禁用分页:
我不会以某种方式反对或同意任何用户禁用分页的选择。我自己有时也这样做。我将指出一些从 Windows 制造商那里学到的东西,以及从惨痛经历中学到的东西。
1) 当今计算机的内存很大,没有必要将分页设置为总内存的 1 倍或 1.5 倍。足够数量的分页就足够了。如果您有 16GB 内存,您肯定不需要 24GB 的分页。例外,我认为有些完整转储需要完整的分页大小。
2)现有的许多程序都会因错误描述得非常不清楚,当根本没有设置分页量时。因此,至少有 512MB 的小空间可用于分页到磁盘可以防止这些程序抛出错误。所以即使在没有分页的情况下多次运行,我还是会有一个小分页,因为我不会给任何程序另一个出错的理由。
是的,系统最终会(仍然)以某些用户可能不想要的方式使用它,通常仅用于卸载您不会使用的垃圾。我同意双方对此的看法,程序错误是无论如何都要保留它的理由。
答案2
我已经关闭了分页,因为写入磁盘会降低整体性能
嗯,首先,您还没有“关闭分页”。您不能。您已经删除了分页文件,但分页仍然会发生(到 exe、dll、映射数据文件等)——如果您不相信我,请查看您的性能计数器。
我认为这个数量的 RAM 应该足够了。
是的……您认为,即使您遇到了“内存不足”错误。发生这些错误是因为您的“提交限制”不够高。提交限制是 RAM 大小加上页面文件大小的总和。将页面文件放回去,您会发现这些错误会消失。您也可以添加更多 RAM,但页面文件空间要便宜得多。如果您确实有足够的 RAM,它不会减慢您的系统速度。
答案3
给自己一个忙,看看这个:
http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/WCL405
TL;DW:您想要复制/处理/收听/在屏幕上观看/通过网络发送等的每个字节都会经过您的 RAM。每个理智的操作系统都会尽可能多地缓存。未使用的 RAM 根本没用。但再次提醒:帮自己一个忙,看看 Mark 解释 Windows 如何使用 RAM。
答案4
RAM 的用途本身并不是为了速度,而是为了资源。
例如,如果您从未消耗过 1GB RAM,那么您的机器是否有 4GB 或 400GB 都无关紧要,因为您永远不会使用它。
我猜测,根据您打开的内容,您可能只使用 2GB - 3GB RAM,因此,您的 4GB 机器可以轻松应对。
Windows 会根据您正在执行的操作自动分配和取消分配内存。因此,即使您感觉只消耗了 1GB 内存,Windows 任务也可能会分拆并消耗另外 1GB... 这没关系,因为它远低于您机器的阈值。
由于您已安装 VS,请创建一个存在内存泄漏的程序并让其运行 - 最终,您应该会收到内存不足异常。这是 RAM 数量变得重要的一个例子。显然,您拥有的 RAM 越多,您需要消耗的资源就越多,因此收到该异常所需的时间就越长。
如果您想更快地运行程序,那么更快的 CPU(处理器)是关键,但有些程序只能以这样的速度运行。我认为在记事本中输入一行文本时,您不会看到 4GB 机器和 8GB 机器之间有太大区别。
要找出哪些程序正在使用您的资源,请打开任务管理器并查看进程选项卡。这里显示 CPU 和内存。