我有 Windows 7,内存为 4GB。系统从全新启动时,使用率约为 33%。但是,如果我将 PC 闲置几个小时或一整夜,我的 PC 使用率通常会攀升至 80% 以上,甚至超过 90%(有一次,使用率高达 98%!)。
最大的提交通常是 SVCHost.exe,大约 500MB。我的 sidebar.exe 进程也趋向于增加到大约相同的数字。
这是升级到 Win7 SP1 后出现的新问题,我在网上找不到太多相关信息。有其他人遇到过这个问题吗?
编辑 当我回到电脑时,它导致了严重的性能问题。我必须重新启动才能恢复内存。
编辑2: 标记为“service-pack”。这个问题直到安装 SP1 后才出现,所以我想知道这是否是根本原因。
答案1
只有在调用时该内存无法用于其他任务时,这才是问题。现在正在使用并不意味着在需要时不能快速释放,事实上,让内存闲置才是真正的浪费。
顺便提一下,这是 Windows 和 Linux 使用内存方式的另一个不同之处。在 Linux 系统上,这会更令人担忧一些,因为交换只是作为最后的手段。除非绝对必要,否则不会进行任何交换,因此 Linux 必须先花时间将使用的 RAM 写入交换分区,然后才能将其回收用于其他程序。另一方面,Windows 喜欢始终保持所有 RAM 处于分页状态。这样,如果它需要使用 RAM 来用于另一个进程,它就已经分页到磁盘,因此可以更快地回收。这是一个权衡 - Linux 在这方面更快,因为 RAM 永远不会被分页/交换,而 Windows 在这方面更快,因为您需要快速交换。
答案2
禁用侧边栏进程。众所周知,它会泄漏大量内存(尽管更有可能是它承载的附加组件导致了资源泄漏)。
建议:如果您的主板可以支持,最好升级到 8 GB 的 RAM,因为 Windows Vista 和 Windows 7 都消耗大量内存,而且现在较新的应用程序似乎也使用了更多的 RAM。
答案3
您是说最大内存使用量是 5MB 吗?对我来说,svhost.exe 占用 180mb 内存,而运行几个选项卡的 Firefox 占用大约 500mb。您能检查一下内存的实际使用情况并告诉我们吗?它是否安装了 SQL Server?众所周知,SQL 会吞噬一切,具体取决于您用于开发的数据库类型。
无论如何得到进程探索器,按专用字节对进程进行排序,看看哪些进程占用了所有内存。或者,也许您有许多进程,它们一起占用了所有可用内存。您需要检查一下。