程序莫名卡顿、出错、运行速度大幅降低

前言
有一次调试一个程序,在并没有改动什么代码的情况下,突然间程序性能大幅下降 , 降低了足足75%左右?。∫环?芯恐??nbsp;, 发现..
原因
【程序莫名卡顿、出错、运行速度大幅降低】从Win7开始 , 微软加入了一项名叫“容错堆”的功能(英文名称:FaultHeap,简写为FTH) 。
根据微软的说法,容错堆 (FTH) 是一个子系统,负责监视应用程序崩溃并自主应用缓解措施,以防止系统将来发生崩溃 。。
这个缓解措施非常的粗暴,将程序性能降低75%左右~~
当然 , 可能还有其它的缓解措施,比如阻止程序继续运行 。。
可怕的是 , 程序被限制之后,即使重启电脑也不会恢复!
以前常听人说,电脑用的时间越久就越容易卡 。大多数人都把目光聚焦在什么垃圾文件太多,磁盘碎片太多,温度过高等等问题上,包括我 。。
后来发现了FTH这个功能后,有种恍然大悟的感觉!莫不是因为这?
检查
那怎么知道程序有没有被FTH限制?
三个方法:
方法一:将怀疑被限制的程序,修改一下文件名再运行,看性能是否提高!
方法二:在运行或者cmd中输入打开注册表编辑器,定位到键值:
\FTHState
看看右侧有没有键值,如图:
右侧的文件路径,就是被FTH限制的程序 。
方法三: 打开 事件查看器->应用程序和服务日志->->->Fault–Heap 通过日志查看
解除限制
解除限制的方法也很简单
方法一:打开注册表编辑器,将\FTHState
键值以下的内容全部删除
方法二:在运行或者cmd中输入命令:.exe .dll,
但这两个方法 , 都只是解除目前被限制的程序,往后仍可能出现程序被限制 。
一劳永逸的方法
要想一劳永逸,最直接的方法win7应用程序图标变白,当然是将这个功能关闭!
打开注册表编辑器,定位到键值:
\FTH
将右侧的键值修改为0,重启电脑即可彻底关闭这个功能!
只为指定的程序关闭“容错堆”功能
和上面彻底关闭的方法在同一个位置,不过键值有所不同:
(排除的进程列表)
将要排除的程序名称,加入列表确定即可!
其它影响
刚百度了一下,发现容错堆(FTH)这个功能,还有可能影响到3DS MAX等软件的渲染性能!
所以 , 应该关闭它吗?
结论
当然应该关闭它?。?
自从2015年发现“容错堆”(FTH)这个功能以来,我就没有让它再出现在我的系统中!无论是网吧系统,还是家用、办公系统!
到目前为止,并没有发现关闭它会有什么负面影响 。。
除了使用注册表来关闭win7应用程序图标变白,也可以在运行或者CMD中输入下面两条命令:
reg add HKLMSOFTWAREMicrosoftFTH -t REG_DWORD /v Enabled /d 0 /fRundll32.exe fthsvc.dll,FthSysprepSpecialize
最后附上微软官方文档:
?容错堆 – Win32 apps |Docs
本文到此结束,希望对大家有所帮助 。