前言

有一次调试程序,没有更改任何代码,突然程序性能大幅下降,足足降低了75%左右!经过一次研究,发现……。

原因

从Win7开始,微软添加了名为“容错堆”的功能(英文名称:Fault Tolerant Heap,简称FTH)。


根据微软的说法,容错堆 (FTH) 是一个子系统,负责监视应用程序崩溃并自主应用缓解措施,以防止系统将来发生崩溃。。


这个缓解措施非常的粗暴,将程序性能降低75%左右~~


当然,可能还有其它的缓解措施,比如阻止程序继续运行。。


可怕的是,程序被限制之后,即使重启电脑也不会恢复!


以前常听人说,电脑用的时间越久就越容易卡。大多数人都把目光聚焦在什么垃圾文件太多,磁盘碎片太多,温度过高等等问题上,包括我。。


后来发现了FTH这个功能后,有种恍然大悟的感觉!莫不是因为这?


检查


那怎么知道程序有没有被FTH限制?


三个方法:


方法一:将怀疑被限制的程序,修改一下文件名再运行,看性能是否提高!


方法二:在运行或者cmd中输入 regedit 打开注册表编辑器,定位到键值:


HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\FTH\State


看看右侧有没有键值,如图:



右侧的文件路径,就是被FTH限制的程序。


方法三: 打开 事件查看器->应用程序和服务日志->Microsoft->Windows->Fault-Tolerant-Heap 通过日志查看


解除限制


解除限制的方法也很简单


方法一:打开注册表编辑器,将HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\FTH\State


键值以下的内容全部删除


方法二:在运行或者cmd中输入命令:Rundll32.exe


但这两个方法,都只是解除目前被限制的程序,往后仍可能出现程序被限制。


一劳永逸的方法


要想一劳永逸,最直接的方法,当然是将这个功能关闭!


打开注册表编辑器,定位到键值:


HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\FTH



将右侧的 Enabled 键值修改为0,重启电脑即可彻底关闭这个功能!


只为指定的程序关闭“容错堆”功能


和上面彻底关闭的方法在同一个位置,不过键值有所不同:



ExclusionList (排除的进程列表)



将要排除的程序名称,加入列表确定即可!


其它影响


刚百度了一下,发现容错堆(FTH)这个功能,还有可能影响到3DS MAX等软件的渲染性能!




所以,应该关闭它吗?


结论


当然应该关闭它!!


自从2015年发现“容错堆”(FTH)这个功能以来,我就没有让它再出现在我的系统中!无论是网吧系统,还是家用、办公系统!


到目前为止,并没有发现关闭它会有什么负面影响。。


除了使用注册表来关闭,也可以在运行或者CMD中输入下面两条命令:

reg add HKLM\SOFTWARE\Microsoft\FTH -t REG_DWORD /v Enabled /d 0 /f Rundll32.exe



最后附上微软官方文档:

​容错堆 - Win32 apps | Microsoft Docs

1.《电脑程序怎么修复?我来告诉你答案程序莫名卡顿、出错、运行速度大幅降低》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《电脑程序怎么修复?我来告诉你答案程序莫名卡顿、出错、运行速度大幅降低》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/gl/3172520.html