首页 > 系统相关 >"Fault Tolerant Heap"(FTH)是Windows操作系统的一个特性,旨在提高应用程序的稳定性 自动检测和修正某些类型的应用程序错误,从而减少应用程序崩溃的频率。

"Fault Tolerant Heap"(FTH)是Windows操作系统的一个特性,旨在提高应用程序的稳定性 自动检测和修正某些类型的应用程序错误,从而减少应用程序崩溃的频率。

时间:2024-02-06 16:44:06浏览次数:36  
标签:操作系统 Windows 自动检测 应用程序 内存 FTH 崩溃

"Fault Tolerant Heap"(FTH)是Windows操作系统的一个特性,旨在提高应用程序的稳定性。它首次出现在Windows 7和Windows Server 2008 R2中,作为操作系统的一部分,用于自动检测和修正某些类型的应用程序错误,从而减少应用程序崩溃的频率。

FTH的工作原理

当应用程序频繁崩溃时,FTH会自动介入,对该应用程序启用一系列的缓解措施,以尝试提高其稳定性。这些措施包括但不限于:

  • 堆损坏检测:在堆操作中添加额外的检查,以便更早地发现并避免堆损坏。
  • 内存分配错误的恢复:在内存分配失败时尝试自动恢复,例如通过返回先前分配的内存块。
  • 延迟释放内存:延迟释放应用程序不再使用的内存,以减少因释放顺序错误导致的崩溃。
  • 序列化堆访问:通过序列化对堆的访问来减少竞争条件,这在多线程应用程序中特别有用。

为什么需要FTH

应用程序可能因各种原因崩溃,包括编码错误、资源管理不当、不兼容的库版本等。FTH的目的是在不需要开发者干预的情况下,自动提供一种机制来增加应用程序的稳定性,特别是对于那些可能不再被积极维护或更新的旧软件。

FTH的影响

  • 正面影响:FTH可以显著提高易出错应用程序的稳定性,减少因应用程序错误导致的崩溃,从而提高用户体验。对于企业环境,它有助于减少IT支持请求,相关于应用程序崩溃问题。
  • 潜在负面影响:虽然FTH旨在提高应用程序的稳定性,但它可能会引入额外的性能开销,因为额外的检查和缓解措施需要消耗CPU和内存资源。此外,FTH的介入可能掩盖了底层的代码问题,导致这些问题更难被发现和修复。

 

"Fault Tolerant Heap"(FTH)作为Windows操作系统的一个特性,其主要目标是增加应用程序的稳定性,尤其是对于那些可能因为代码中的缺陷而频繁崩溃的应用程序。从它首次被引入到后续的Windows版本中,FTH的核心目标保持不变,但随着技术的发展和用户反馈的积累,微软可能对其进行了一些优化和改进以更好地实现这一目标。下面是一些可能随着不同Windows版本出现的FTH功能特性的差异和发展:

  1. 错误检测和自动启用:FTH的基本机制包括检测特定应用程序的崩溃模式,并在检测到频繁崩溃时自动启用。随着操作系统版本的更新,微软可能改进了错误检测算法,使得FTH能够更智能地识别哪些崩溃可以通过启用FTH来缓解。

  2. 内存管理改进:FTH试图通过改变应用程序的内存分配行为来减少崩溃。这可能包括对堆分配的策略进行调整,例如实现更严格的内存覆写检测、提供额外的内存边界保护等。随着新版本的推出,这些策略可能会得到进一步的优化或增加新的内存管理特性。

  3. 兼容性和性能调整:虽然FTH的目的是提高应用程序的稳定性,但它也需要平衡兼容性和性能的影响。在不同的Windows版本中,微软可能细化了FTH的工作方式,以确保它在减少应用程序崩溃的同时,对应用程序的性能和兼容性影响最小。

  4. 配置和管理能力:随着时间的推移,针对开发者和IT专业人员,微软可能增强了FTH的配置和管理工具,提供了更多的选项和控制来启用、禁用或调整FTH的行为,以适应不同的应用场景和需求。

  5. 诊断和日志记录:为了帮助开发者和系统管理员更好地理解FTH如何影响应用程序,微软可能改进了FTH的诊断和日志记录功能,提供更详细的信息来分析崩溃原因和FTH的介入效果。

  6. 用户界面和工具支持:随着时间的推进,微软可能在操作系统中引入了更多的用户界面工具或命令行工具,以便用户和管理员更方便地管理和监控FTH的状态。例如,通过事件查看器(Event Viewer)、性能监视器(Performance Monitor)或特定的管理命令,用户可以更直观地了解FTH的活动和对应用程序稳定性的影响。

  7. 集成诊断框架:Windows操作系统本身包含了丰富的诊断框架和故障排除工具。随着新版本的发布,FTH可能更紧密地与这些框架集成,使得当应用程序崩溃时,系统能够提供更详细的诊断信息或自动触发特定的故障排除步骤。

  8. 安全性考虑:在不断发展的网络环境中,安全性始终是操作系统关注的重点。FTH的实现和调整也可能考虑到了增强应用程序和系统的安全性,比如通过限制某些可能被恶意利用的内存操作来减少安全漏洞的风险。

  9. 云和远程场景优化:随着云计算和远程工作的普及,应用程序的运行环境变得更加多样化。FTH可能在这些场景下进行了特别的优化,以确保在虚拟化环境或远程桌面服务等情况下,应用程序的稳定性得到有效保障。

  10. 反馈机制和自学习能力:理论上,随着人工智能技术的发展,微软可能会探索将更多智能化的元素集成到FTH中,比如通过分析大量应用程序崩溃数据来自动调整FTH的策略,或者通过机器学习算法预测并防止潜在的崩溃。

 

"Fault Tolerant Heap"(FTH)是一个Windows操作系统的特性,旨在提高应用程序的稳定性。当Windows检测到某个程序频繁崩溃时,FTH可以自动介入,尝试通过各种兼容性调整来减少这些崩溃。这可能包括对内存分配的管理方式进行调整,以避免常见的内存错误导致的崩溃。

FTH首次引入是在Windows 7和Windows Server 2008 R2中。随后,它被保留并继续存在于后续的Windows版本中,包括但不限于Windows 8、Windows 8.1、Windows 10以及Windows Server的相应版本。

至于FTH的不同“版本”,通常情况下,我们不太将其视为有不同的“版本”,而是将其看作是Windows操作系统功能的一部分,随着操作系统的更新而得到改进和优化。因此,具体的FTH行为和特性可能会根据你所使用的Windows操作系统版本(如Windows 7、Windows 10、Windows Server 2016等)有所不同。

 


power shell命令 列出FTH部分参数,可以进行调优,如果实在对程序员和使用者有影响,建议全局关闭。

power shell命令 Get-ItemProperty -Path "HKLM:\Software\Microsoft\FTH" 显示了注册表键 HKEY_LOCAL_MACHINE\Software\Microsoft\FTH 下的所有属性及其对应的值。以下是这些属性的简要解释:

  • CheckPointPeriod: 检查点周期(以分钟为单位),用于确定何时检查堆错误。
  • CrashVelocity: 崩溃速度阈值,用于衡量在指定时间内崩溃次数是否达到启用FTH的标准。
  • CrashWindowInMinutes: 在这段时间内,如果进程崩溃次数达到一定数量,FTH将被激活。
  • Enabled: 是否全局启用FTH功能。1表示启用,0表示禁用。
  • ExclusionList: 列出了不受FTH监控的进程列表。
  • MaximumAllocationOverheadInMBs: 分配内存时允许的最大开销(以MB为单位)。
  • MaximumDelayFreeOverheadInMBs: 延迟释放内存时允许的最大开销(以MB为单位)。
  • MaximumMemoryPressurePercentage: 内存压力达到这个百分比时,FTH开始执行其策略。
  • MaximumTrackedApplications: 最大可跟踪应用程序的数量。
  • MaximumTrackedProcesses: 同一时间最大可由FTH监控的进程数。
  • RuleList: 一系列规则,可能与特定模块、异常类型等关联,决定何时启用FTH。
  • TicketValue: 不明确,可能与FTH内部管理机制相关。
  • CheckPointTime: 上一次检查点的时间戳。
  • PSPath 至 PSProvider: 这些是PowerShell内置对象属性,提供了关于当前注册表路径的信息。

 

标签:操作系统,Windows,自动检测,应用程序,内存,FTH,崩溃
From: https://www.cnblogs.com/suv789/p/18009966

相关文章

  • 软件icon制作流程,就一张256-256的图即可,一键生成windows所有格式
    软件icon制作流程,就一张256-256的图即可,一键生成windows所有格式好久不用这个都有些生疏了,还特意做了好几个尺寸的图,结果白弄了,软件会自动生成。1.准备256-256px的图2.打开GreenfishIconEditorPro下载地址:GreenfishIconEditorPro(图片转图标工具)V3.5多语版https:/......
  • Windows Dependency Walker & Dumpbin
    *[Windows查看exe依赖的dll的方法-知乎](https://zhuanlan.zhihu.com/p/395557318#%E6%96%B9%E6%B3%95%E4%B8%80%EF%BC%9ALucasg/Dependencies%EF%BC%88%E5%BC%80%E6%BA%90%E7%89%88%E7%9A%84%E7%8E%B0%E4%BB%A3%20Dependency%20Walker%EF%BC%89)*[DUMPBIN工具的使用-z......
  • windows栈回溯功能示例——漏洞利用检测
    利用windows栈回溯如何进行漏洞利用检测?利用Windows栈回溯进行漏洞利用检测是一个复杂的过程,它通常涉及监控可疑或危险函数的调用,并分析调用这些函数的上下文来判断是否存在潜在的漏洞利用尝试。这种方法需要深入理解漏洞利用技术、危险函数的正常与异常使用模式,以及堆栈回溯的技......
  • Windows和浏览器的命令与快捷键
    目录一、运行常用命令二、cmd常用命令(cmd的命令是运行的命令的超集)三、Windows快捷键1、Win键2、Ctrl键3、Alt键4、F键四、浏览器快捷键五、关闭Windows防火墙、安全中心和自动更新一、运行常用命令1.基本命令cmd打开命令提示符(cmd命令行控制台)control......
  • Windows下如何使用 Sublime Text 4 配置 C/C++ 环境(使用LSP-clangd)
    1软件安装1.1SublimeText4安装及PackageControl安装略,请自行百度/必应/谷歌。1.2Clang环境安装1.2.1Clang下载在LLVMMinGW下载最新版Clang编译器,此处应根据个人电脑系统及版本选择,本文选择llvm-mingw-20231128-ucrt-x86_64.zip,后续文件名将以此为例。各版本......
  • 使用 WPF + Chrome 内核实现高稳定性的在线客服系统复合应用程序
    对于在线客服与营销系统,客服端指的是后台提供服务的客服或营销人员,他们使用客服程序在后台观察网站的被访情况,开展营销活动或提供客户服务。在本篇文章中,我将详细介绍如何通过WPF+Chrome内核的方式实现复合客服端应用程序。先看实现效果客服程序界面中的聊天记录部分、文字......
  • windows下部署Blynk服务器部署最新教学
    目录Step1.下载链接Step2.部署Step2.1软件安装及载入工程1.安装Intellij社区版正常安装即可2.下载maven并将其添加进环境变量Step1.下载链接链接:https://pan.baidu.com/s/1ysbAYhyxUGx1ZG3xNMdsAw?pwd=1fel提取码:1felStep2.部署Step2.1软件安装及载入工程1.安装Intel......
  • 商业银行应用程序接口安全管理
    1、商业银行应用程序接口分为两类,一是资金交易与账户信息查询应用类,级别相对较高。二是金融产品和服务信息查询应用类,级别相对较低。2、接口安全设计。一是身份认证,包括接口身份认证和用户身份认证。接口身份认证主要是APPID与APP_Secret、数字证书、公私钥对的组合。用户身......
  • PowerShell是一种跨平台的任务自动化解决方案,包括命令行shell、脚本语言和配置管理框
    PowerShell是一种跨平台的任务自动化解决方案,包括命令行shell、脚本语言和配置管理框架。PowerShell提供了丰富的命令(称为cmdlet),可以用来执行许多Windows管理任务,包括但不限于用户和组管理、文件系统操作、进程和服务管理等。下面列举一些常见的net命令以及它们在PowerShell中的对......
  • 统信UOS/麒麟KYLINOS与Windows通过Open SSH实现文件传输
    原文链接:统信UOS/麒麟KYLINOS与Windows通过OpenSSH实现文件传输hello,大家好啊!今天我要给大家介绍的是在统信UOS或麒麟KYLINOS操作系统与Windows系统之间通过OpenSSH实现文件传输的方法。在日常工作中,我们经常需要在不同操作系统之间传输文件。虽然可以使用SMB文件共享等方法,但今......