使用太多的内存


13

我已经有一段时间感觉到这种感觉了,从精神上看任务管理器,看应该使用多少物理内存,并注意到差距很大。我终于开始测量它了。取任务列表的结果并添加,得到了约3.87 GB。任务管理器告诉我我正在使用4.6 GB的内存。这似乎有很大的差距。去哪了

编辑:所以很明显,它不会预取。还建议它是OS的一部分,而不是任何系统进程的一部分。如果是这样,请找到一种方法让操作系统告诉我正在使用多少内存。因为我想找出记忆的去向,所以要求我查看差异对我没有任何帮助。

编辑2:不是以下内容:

  1. 内核
  2. 缓存
  3. 硬件保留的内存

已占用资源的图片。不太确定它将做什么,但是... 在此处输入图片说明


您正在使用什么操作系统?使用更多信息,您将获得更好的答案:)
Cam Jackson

抱歉,看到新标签了:)
soandos 2011年

@soandos:您是否尝试过禁用超级读取并重新启动?这有什么不同吗?
user541686 2011年

是的,我做了,不,不是。尽管知道预取多少内存也很不错。
soandos 2011年

2
预取不使用内存,它从编译的应用程序中缓存最常用的字节码。请勿禁用它,否则系统性能将急剧下降。
突破

Answers:


5

我建议从Microsoft下载Sysinternals Suite。它包含多个实用程序,这些实用程序将为您提供比任务管理器更多的信息。看一下Process Explorer,RAMMap,VMMap和Process Monitor实用程序。为了从他们那里获得最多的信息,您可能需要进行一些配置以更改显示的信息。

另外,由于您对Windows内存感兴趣,因此这里是Sysinternals开发人员/创始人之一Mark Russinovich的一系列博客文章。这将有助于弄清楚实用程序提供的信息。


RAMMap似乎告诉我任务管理器将ram的总使用量高估了约100MB,但是根据我可以使用任务列表提取的内存列表,RAMMap也高估了约200MB(任务列表+200 = RAMMap,RAMMap + 100 = taskmanger)
soandos 2011年

1
我不确定您所看到的内容,也不确定Windows计算机atm上的内容。但是,如果您仍然想深入研究,请在Sysinternals论坛上提问。那里有一些非常聪明的人,他们非常“了解” Windows内部。他们将更熟悉Windows内存管理的优点。
Joe Internet,

对于未来的参考,这里的标记Russinovich的TechEd在Windows内存管理2011次会谈:channel9.msdn.com/Events/TechEd/NorthAmerica/...
乔互联网

这个“答案”即使被接受也不能回答问题!它仅建议用于调查的工具和阅读材料。
杰米·汉拉汉

8

Windows 7使用“未使用”的内存来预缓存事物,以使事物运行更快。如果您需要此内存,它将被释放。

它的一个功能,而不是一个错误;)

来自Technet

在使用Windows Vista系统一段时间后,“任务管理器”的“性能”页面上的“可用物理内存”计数器将显示一个较低的数字。这是因为SuperFetch和标准Windows缓存利用了所有可用的物理内存来缓存磁盘数据。例如,当您第一次启动时,如果立即运行任务管理器,您会注意到随着“缓存内存”数量的增加,“可用内存”值将减小。或者,如果您运行一个需要大量内存的程序,然后退出它(分配大量内存然后释放内存的任何免费软件“ RAM优化器”都可以使用),或者只是复制一个非常大的文件,则Free号将上升,随着系统回收释放的内存,“物理内存使用情况”图将下降。但是,随着时间的流逝,SuperFetch会使用被迫出内存的数据重新填充缓存,


1
1)为什么在该进程的内存中未列出该列表?2)我怎么知道是这种情况?
soandos 2011年

我相信superfetch在svchost下。它可能被视为内核内存。您可以尝试打开和关闭超取进行检查。
Journeyman Geek

它什么也没做。
soandos 2011年

Superfetch使用的内存在“待机”页面列表上,并计为“可用”的一部分。它不算作“使用中”,因为它可以像“待机”列表中的所有其他内容以及“自由”和“零”列表中的所有内容一样,被重新调整用途(从“待机”列表中抽出并放入进程中)。
Jamie Hanrahan

5

您所看到的数字是完全不准确的,仅应作为指示。

操作系统是一个极其复杂的实体,像任务管理器这样的笨拙的程序永远无法汇总全部使用情况,它的许多部分在运行用户模式下根本无法访问。硬件分段表,共享内存分配,内核分配的内存,页面内存分配,设备内存等等,是一些无法访问的元素,或者根本无法归因于任何“任务”的元素。

您将在“我如何解释任务管理器的性能”选项卡中找到更多说明,但我选择引用这部分:

您对一个自称为“任务管理器”的程序有什么期望?操作系统内核中没有所谓的“任务”-操作系统具有“进程”和“线程”。DOS有“任务”。英特尔硬件具有“任务”结构,但是操作系统不使用它们,因为它自己执行任务的速度更快。

任务管理器是一个非常古老的Windows程序,即使将功能归因于服务也存在问题,并且显示的数字应该用少量的盐来表示。它可能丢失了无法管理或归因于任何“任务”的大容量内存。


那么我应该使用哪个程序来解决呢?PS Task管理员确实列出了内核内存。
soandos 2011年

1
没有一个程序可以为您提供所有信息。任务管理器将提供一些信息和一个近似值,设备管理器可以告诉有关设备内存的WinObj有关内存对象的信息。最好的来源是资源监视器,它是从任务管理器(和其他地方)的“性能”选项卡调用的,实际上是任务管理器的现代替代品。
harrymc 2011年

资源管理器在任务管理器中给出15以内的数字。
soandos 2011年

这些看起来像是您可以从Windows界面获得的唯一数字。它们并不精确,但总比没有好。它们可以用于故障排除(我经常这样做),但是不要指望它们包括所有内容。
harrymc 2011年

任务管理器是“非常老的Windows程序”的想法很愚蠢。操作系统的每个版本都会对其进行更新,就像其他所有版本一样。至于“唯一可以得到的数字”,您是否使用过Performance Monitor?
Jamie Hanrahan

3

您可能已经注意到,任务管理器可以为您提供大多数应用程序如何影响系统的简化快照,但是还有很多不足之处。如果您真的想深入研究RAM等中的缓存,则需要进入Performance Monitor。您将需要一些工作来构建系统计数器集以监视系统。

您可以通过运行compmgmt.msc或通过Windows搜索“计算机管理”来到达那里,在左侧,您将看到可以扩展和挖掘的性能树。

这是一些可用工具的参考:http : //technet.microsoft.com/zh-cn/library/cc749249.aspx


虽然我看到它是一个非常酷的工具,可以完成很多工作(事实证明,内存中有大量计数器,但是我对要寻找的内容
一无所知

此外,“添加计数器”选项往往会粘在我的屏幕上,并且我必须手动来回更改分辨率来解决该问题(刷新不起作用)。我知道不是你的错。
soandos 2011年

3

内存可能正在用于内核。使用Process Explorer,我们可以看到更详细的系统内存细分:

内核内存信息

在这里,我重点介绍了内核使用的内存量,即分页WS +非分页,或大约300MB的内存。这是在一个刚启动的系统上,该系统仅具有Web浏览器和其他一些打开的应用程序,尽管在重负载下,我的家庭系统很容易破坏500MB甚至700MB的内核内存。


我看着那,还不够。谢谢你
soandos 2011年

您是否在询问“提交”和“物理内存”编号之间的差异?
Darth Android

不,我问的是为什么当我运行不同的工具时应该得到相同的数字,我却得到不同的数字。
soandos 2011年

2

@soandos,您是否考虑了视频要拉多少内存?视频很有可能正在占用0.73 GB的RAM。您在这台机器上是否有不错的视频卡?如果没有,它将使用这样的RAM(据我所知)。如果我错了,请有人在这里提示,但是我相信这可能是视频从RAM中拉出的结果。


我有Nvidia GTS 360M。它不是很好的视频卡,但确实有GB的内存。
soandos 2011年

您正在使用哪种类型的显示器,并使用哪种分辨率?另外,您是否正在执行视频密集型任务,例如以1080p玩游戏?您的视频卡使用哪种类型的RAM(例如DDR1,DDR2,DDR3,DDR5)?我会自己查一下,但是我尝试使用某人的视频卡模型进行测试,并注意到他们使用几种不同类型的RAM制作了它
David

电脑的标准配置,1920x1080,不知道。有没有一种方法可以衡量这一点?
soandos 2011年

通常我会在包装上说,我不确定。如果您知道确切的卡型号,则可以在Internet上找到。如果它不是功能非常强大的视频卡(使用DDR2,DDR1),并且您将1920x1080与大显示器配合使用(例如,我在家中使用三星46英寸TOC电视作为显示器),则可以烧毁视频上有很多内存...我不确定是否有办法查看视频消耗了多少内存。不过,我现在会对其进行一些研究。我会回头评论我是否找到了任何东西我想帮你出尽可能多的。
大卫·

我目前正在检查程序,以查看它是否具有我们想要的功能。它是SiSoftware Sandra Lite 2011.2.17.47。描述指出它可以满足我们的需求,例如视频消耗了多少RAM。
David David

1

我认为您看到的差异不是因为工具无法看到已使用的内存,而是因为测量形式不同。我不能很好地解释这一点,但是幸运的是,我不必这样做,Sysinternals的名马克·鲁西诺维奇Mark Russinovich)写了一系列关于Windows进程性能的很好的文章。有关物理内存虚拟内存的部分应解释您所看到的内容。


不,那不是问题。我更关心的是总量而不是存储量(RAM或HD)。
soandos 2011年

0

我想我解决了!

我刚刚遇到了有关RAMMap的提示,事实证明这是µTorrent!

不是utorrent.exe本身,而是µTorrent共享的文件-至少在我看来:其中一个文件使用了600 MB以上,另一个文件使用了200 MB以上,依此类推。


-1

一些内存用作高速缓存。一旦需要此内存,它将自动释放。因此,无需担心。


-1不是高速缓存,因为它是1)单独计算的,2)易于解释的。
soandos 2011年
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.