我在 Windows 7 计算机上的进程 svchost.exe 中发生内存泄漏。当然,有几个同名的进程正在运行。当我查看正在运行的服务时,有 6 个:
- Com+ 事件系统
- Windows 字体缓存
- 网络列表
- 网络商店界面
- 安全套接字隧道协议
- 诊断服务主机
我正在安装另一篇帖子但我想知道以后是否有办法找到导致问题的服务。我已经重启了所有服务,但这并不能帮助我找出是哪个服务导致了问题。
奖励!:一旦内存被“吃”完,有没有办法在不重新启动的情况下释放所有内存?
答案1
sc.exe config ServiceName type= own
我能想到的唯一方法是通过运行(替换ServiceName
为服务名称)将共享服务拆分到它们自己的容器中,重新启动服务,然后找出哪个svchost.exe
容器仍然出现内存泄漏。通过该容器托管的服务svchost.exe
就是罪魁祸首。
请注意,这并不意味着存在“内存泄漏”。可能是服务确实增加了资源使用量。但这将识别该服务,据我所知,将服务拆分到自己的服务主机容器中除了以下情况外,没有其他真正的缺点轻微地增加了内存使用量(有人在这里让我保持诚实)。
答案2
遵循本指南这里解决 svchost.exe 内存泄漏问题。我建议先从解决方案二开始。
解决方案 2 概述:
- 打开任务管理器
- 转到“流程”选项卡并单击“显示所有用户的流程”
- 找到 svchost.exe,右键单击并在底部选择“转到服务”
- 找到突出显示的服务,通过停止服务(可能有危险)找出哪些服务占用了你的内存,或者用谷歌搜索服务本身,看看它是否对你的电脑至关重要(更安全)
- 查看内存使用量是否下降到可接受的量