程序莫名卡顿、运行速度大幅降低的一种可能因素

2024-03-25 22:20

本文主要是介绍程序莫名卡顿、运行速度大幅降低的一种可能因素,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

有一次调试一个程序,在并没有改动什么代码的情况下,突然间程序性能大幅下降,降低了足足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 fthsvc.dll,FthSysprepSpecialize

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

一劳永逸的方法

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

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

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 fthsvc.dll,FthSysprepSpecialize

最后附上微软官方文档:容错堆 - Win32 apps | Microsoft Docs容错堆icon-default.png?t=M4ADhttps://docs.microsoft.com/zh-cn/windows/win32/win7appqual/fault-tolerant-heap

这篇关于程序莫名卡顿、运行速度大幅降低的一种可能因素的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/846416

相关文章

python编写朋克风格的天气查询程序

《python编写朋克风格的天气查询程序》这篇文章主要为大家详细介绍了一个基于Python的桌面应用程序,使用了tkinter库来创建图形用户界面并通过requests库调用Open-MeteoAPI... 目录工具介绍工具使用说明python脚本内容如何运行脚本工具介绍这个天气查询工具是一个基于 Pyt

Ubuntu设置程序开机自启动的操作步骤

《Ubuntu设置程序开机自启动的操作步骤》在部署程序到边缘端时,我们总希望可以通电即启动我们写好的程序,本篇博客用以记录如何在ubuntu开机执行某条命令或者某个可执行程序,需要的朋友可以参考下... 目录1、概述2、图形界面设置3、设置为Systemd服务1、概述测试环境:Ubuntu22.04 带图

Java -jar命令如何运行外部依赖JAR包

《Java-jar命令如何运行外部依赖JAR包》在Java应用部署中,java-jar命令是启动可执行JAR包的标准方式,但当应用需要依赖外部JAR文件时,直接使用java-jar会面临类加载困... 目录引言:外部依赖JAR的必要性一、问题本质:类加载机制的限制1. Java -jar的默认行为2. 类加

java -jar命令运行 jar包时运行外部依赖jar包的场景分析

《java-jar命令运行jar包时运行外部依赖jar包的场景分析》:本文主要介绍java-jar命令运行jar包时运行外部依赖jar包的场景分析,本文给大家介绍的非常详细,对大家的学习或工作... 目录Java -jar命令运行 jar包时如何运行外部依赖jar包场景:解决:方法一、启动参数添加: -Xb

Python程序打包exe,单文件和多文件方式

《Python程序打包exe,单文件和多文件方式》:本文主要介绍Python程序打包exe,单文件和多文件方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录python 脚本打成exe文件安装Pyinstaller准备一个ico图标打包方式一(适用于文件较少的程

Python程序的文件头部声明小结

《Python程序的文件头部声明小结》在Python文件的顶部声明编码通常是必须的,尤其是在处理非ASCII字符时,下面就来介绍一下两种头部文件声明,具有一定的参考价值,感兴趣的可以了解一下... 目录一、# coding=utf-8二、#!/usr/bin/env python三、运行Python程序四、

eclipse如何运行springboot项目

《eclipse如何运行springboot项目》:本文主要介绍eclipse如何运行springboot项目问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目js录当在eclipse启动spring boot项目时出现问题解决办法1.通过cmd命令行2.在ecl

IDEA下"File is read-only"可能原因分析及"找不到或无法加载主类"的问题

《IDEA下Fileisread-only可能原因分析及找不到或无法加载主类的问题》:本文主要介绍IDEA下Fileisread-only可能原因分析及找不到或无法加载主类的问题,具有很好的参... 目录1.File is read-only”可能原因2.“找不到或无法加载主类”问题的解决总结1.File

无法启动此程序因为计算机丢失api-ms-win-core-path-l1-1-0.dll修复方案

《无法启动此程序因为计算机丢失api-ms-win-core-path-l1-1-0.dll修复方案》:本文主要介绍了无法启动此程序,详细内容请阅读本文,希望能对你有所帮助... 在计算机使用过程中,我们经常会遇到一些错误提示,其中之一就是"api-ms-win-core-path-l1-1-0.dll丢失

使用nohup和--remove-source-files在后台运行rsync并记录日志方式

《使用nohup和--remove-source-files在后台运行rsync并记录日志方式》:本文主要介绍使用nohup和--remove-source-files在后台运行rsync并记录日... 目录一、什么是 --remove-source-files?二、示例命令三、命令详解1. nohup2.