星期日, 十二月 15日 2019, 6:37 晚上

  1.7k 字     6 分钟  

这是一个关于Windows系统的小Bug。此问题困扰了我一个月,一个月前,我突然发现当我打开文件夹系统的时候,Explorer.exe进程会莫名其妙占用CPU过高,本文简述了我是如何发现并解决这个问题的。

解决Explorer.exe占用CPU过高的问题

问题发现

此问题困扰了本菜鸡一个月,一个月前,本菜鸡突然发现当我打开文件夹系统的时候(任意一个文件夹即可),比如下面这样:

中间那个便是打开的文件夹。
然后过几分钟,就会发现本菜鸡的电脑cpu已经不知不觉变成了100%,内存也被大量占用。打开任务管理器查看就会发现:
上图这个进程会疯狂地占用cpu和内存(此图是我后来截图用来展示的,先前cpu占用可达到60%)
比如像这样(此图源自网上):
本菜鸡感到十分困惑,所以到网上搜索寻找解决方案,最终解决了问题,这里对解决的方法做一个总结,希望以后出现这个问题的人都能顺利解决哈~😀

技术手段

工欲善其事必先利其器

本菜鸡想要找到到底是什么原因造成了windows资源管理器的cpu占用率飙升(也就是explorer.exe),首先,在微软官方下载最新版的Process Explorer,Process Explorer是任务管理器的加强版,它可以帮助你查看windows进程中的具体信息,比如该进程中线程的具体信息,进程加载了哪些dll和句柄,这里附上官方下载链接:

https://docs.microsoft.com/en-us/sysinternals/downloads/process-explorer


下载好了之后,在cpu占用率飙升的时候打开软件,主页面长这样:

双击explorer.exe,即可查看进程的详细信息:
由于本菜已经修复了问题,这里放上去是为了给大家一个例子,当时本菜发现当cpu占用率高的时候,explorer.exe出现了n多个新的线程,其中以下几个起始地址相同的线程每一个平均占用10%的cpu(此图是我之后截的):
就是他,start address为ntdll.dll rtl initialize resource+0x410这个鬼线程在疯狂的蚕食我的cpu和内存,似乎本菜打开的文件夹越多,这个线程的数量就越多,占用cpu也就越高,如果kill掉这些线程会暂时解决问题,但是下次打开的时候又会重新出现,同理,如果重启explorer.exe(Windows资源管理器)也可以暂时解决问题。
本菜鸡百思不得其解,随到谷歌上寻求高人指教,果不其然,在外网上遇到了与我有相同困惑的外国友人:
5
我和他的情况简直一毛一样,我这里找到了原因,本菜在一个论坛的小角落里找到了他给出的解决办法:将注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Search中的SetupCompletedSuccessfully = 0改为1,然后重启系统即可。
以上是解决本菜电脑这个问题的解决办法,本菜还尝试了以下的所有解决办法,不知道是哪个起了作用,反正现在问题是不会出现了,这里告诉大家,如果找不到原因,可以用Process Explorer来试试找一下深层原因,然后在对症下药(谷歌/百度),
困扰了本菜一个多月的问题解决了,本菜表示十分开心,谷歌牛逼!(破音)

其他解决办法

1.重启explorer.exe

此方法治标不治本,只能缓解,可能过一会就又会CPU占用过高,具体方法:同时按住Ctrl+shift+ESC代开任务管理器如下:

点击右下角的重启服务,重启以后会重新加载资源管理器,我们可以看到CPU使用率已经慢慢降下来,上面也说这只是暂时一个解决办法。

或者可以手动添加一个重启Explorer的命令。新建一个笔记本.txt文件,直接复制下面一段代码到新建的.TXT文件:
taskkill /f /im explorer.exe & start explorer.exe
退出,修改扩展名为.BAT,即可。这样的话,下次再有忽然Explorer突然升高,尤其是风扇剧烈转动时,双击这个.BAT即可解决。当然这个方法治标不治本,但能解当时的困局。

2.取消一周一次的磁盘碎片整理计划

第一步、按下Win+E组合键,打开资源管理器,选中C盘,右键单击,在菜单中选择“属性”。
第二步、在本地磁盘(C:)属性界面,单击“工具”选项卡在“对驱动器进行优化和碎片整理”项目中找到并单击“优化”。
第三步、在驱动器优化界面,在激活的优化项目中找到并单击“更改设置”。 第四步、在随后出现的“优化驱动器”界面,去掉“按计划运行”前面的勾选,然后单击确定就可以了!

3.关闭windows家庭组

关闭方法:控制面板–管理工具–服务– HomeGroup Listener和HomeGroup Provider禁用。
新版win10已经没有HomeGroup Listener和HomeGroup Provider,取而代之的是需要将这三项禁止:

### 4.禁用cotana(小娜) + 禁用问题收集服务 这里可以参考以下链接的相关操作: https://blog.csdn.net/sinat_34104446/article/details/70878075

5.其他办法

导致CPU占用的另一个原因可能是后台用于更新的P2P分享服务,你可以选择关闭P2P分享。方法:打开系统设置—更新和安全—Windows更新—高级选项—选择如何提供更新,将“更新来自多个位置”关闭即可。


如果你使用的是Win10家庭版系统,并且启用了Windows聚焦(Spotlight)功能,可能是该功能的后台服务导致CPU占用超高。打开系统设置—个性化—锁屏界面,选择其他背景模式。


Windows提示功能也可能会导致CPU占用居高,该功能会根据用户的操作习惯推送一些有关系统功能特性的通知,如果你已经非常熟悉Win10,可以将其关闭。打开系统设置—系统—通知和操作,关闭“显示有关Windows的提示”。


快捷键win+R打开运行,输入services.msc,回车,禁用Diagnostics Tracking Service服务。Diagnostics Tracking Service汉语意思为诊断跟踪服务,用于收集Windows组件的功能性问题数据。该服务没有独立的可执行文件,默认位于C:\Windows\System32\svchost.exe -k netsvcs


–转载自知乎周广恩的回答

参考资料

1.https://www.zhihu.com/question/39000100
2.https://blog.csdn.net/sinat_34104446/article/details/70878075



疑难杂症     

本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!

 目录

"觉得赞的话,微信扫一扫赞赏一下吧"



Plugins