长时间的工作后,我的记忆去了哪里?


3

我有一台具有12GB RAM的Windows 7 Professional计算机。重新启动时,RAM的容量足以满足我的需求。但是,正常运行时间又过了几周,内存似乎消失了,开始使用虚拟内存,导致性能下降。

例如,我通常会打开3个Visual Studio实例,这在正常运行时间的早期非常好。但是,甚至在重新启动Visual Studio之后,甚至Visual Studio的一个实例都无法处理太多的过载。

以下是一些屏幕截图,显示了任务管理器中的差异:

重新启动时:

重新启动 重新启动

2周正常运行时间:

2周正常运行时间 2周正常运行时间

我知道Windows 7会随着时间的推移尝试耗尽所有可用的RAM,以便快速访问程序和其他服务(基本上是缓存),但这不能解释为什么在计算机正常运行2周后我必须关闭大量的程序/进程只是为了使用一个程序而没有屏幕冻结的滞后,而几乎没有任何正常运行时间,我就可以运行多个程序。

这里到底发生了什么?


在第一张图片中,您正在运行135个进程,在第二张图片中,您有155个进程。更多的程序=更多的内存.....
BroScience

1
它可能并没有以您的用户身份运行。点击Resource MonitorPerformance标签,然后转到Memory新屏幕的选项卡。而是发布该窗口的屏幕截图。
Scott Chamberlain

@ScottChamberlain好点。不幸的是,我刚刚重启了计算机。话虽如此,svchost.exe是目前唯一以181K运行的出色程序。我会密切注意的。
ROFLwTIME

从SysInternals套件(technet.microsoft.com/zh-cn/sysinternals/bb842062.aspx)中运行Process Explorer,然后以管理员身份启动它,以更清楚地了解正在消耗您的内存的情况。在视图菜单上,单击选择列,然后转到内存选项卡。勾选虚拟大小,然后按该列排序。
罗伯特·克尔

我看到问题冲到了头版,您是否有机会使用Resource Monitor截屏?
Scott Chamberlain

Answers:


1

您正在查看私人工作套件。我强烈建议将“提交大小”添加到任务栏。

RAMMap是炸弹,但是在大多数情况下,与所有可用的其他内存计数器一样,您仅需要Commit Size。

提交大小IMXP始终与内存表(在XP中旧的“ PF用法”)相匹配。

如果我为MS工作,则将其设置为默认值,这样可以节省许多头部刮花的时间


3

Windows正常时,应运行RAMMap,将其另存为RMP文件,并在内存使用率较高时第二次运行。现在比较两者。

阅读链接的指南以了解值的含义。

在此处输入图片说明

在您的taskmgr图片中,我可以看到(非)分页的内核内存使用率很高。因此,驱动程序正在泄漏内存。使用poolmonxperf / WPA跟踪哪个驱动程序正在使用内存。


2

您运行的一个(或多个)程序可能存在内存泄漏

在计算机科学中,当计算机程序错误地管理内存分配时,就会发生内存泄漏(在此情况下为泄漏)。在面向对象的编程中,当对象存储在内存中但运行代码无法访问时,可能会发生内存泄漏

...

内存泄漏会通过减少可用内存量来降低计算机的性能。最终,在最坏的情况下,可能会分配过多的可用内存,并且系统或设备的全部或部分停止正常工作,应用程序出现故障,或者系统由于崩溃而无法正常运行。

退出程序应释放所有相关的内存。

附带说明,我注意到网络浏览器(及其扩展程序和插件)通常是造成此类问题的因素。使用ExitChrome 的菜单选项,然后重新启动将恢复所有具有较低内存使用量的标签。


3
Flash和Java是造成内存泄漏的最大根源,您似乎拥有超过153个平均运行进程的平均数量,而您有153个,因此请关闭一些程序。您也可以关闭“分页文件”,以免使用VRAM。如果您运行Visual Studio的多个实例,将获得至少16GB的更多RAM。我的网络管理员有32GB,并运行5个VB实例和数百个chrome标签。因此,如果您要执行多任务处理,那么可能需要更多的功能。
Eryper

Java +1。浏览器在我的Windows机器上看起来不错...我的朋友Mac,但是一周后通常使用2gig的Safari或Firefox ...
Michael

0

看起来您同时有多个实例在chrome.exe运行。这可能是您的问题。尝试删除该过程,然后查看计算机速度如何。如果有帮助,请从您的计算机中删除Google Chrome。您应该不再有问题了。如果没有帮助,请确保未从计算机上的其他用户运行进程。要找到答案,请单击任务管理器上的“显示所有用户的进程”按钮,然后查看是否还有更多进程。

希望这可以帮助。


4
Google chrome在启动和浏览时会启动许多过程。这是此产品的正常行为。关闭时,所有实例将消失。
Sarge

哦,我没有意识到这一点。我只使用Firefox。如果它占用了您的内存,请摆脱掉Google Chrome。Firefox更好。
HelpingHand 2013年

0

Visual Studio是一个资源匮乏的野兽,最终将用尽所有可用的资源。同样,某些应用程序有一个讨厌的习惯,即关闭时不释放资源(几乎有任何Micrsoft产品存在)。我不知道您的要求,但我建议,如果可能的话,每周至少重新启动一次。当然,这将刷新您的内存并释放这些资源。

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.