版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
稳定性问题智能提效治理方案专项性能高级工程师深耕大前端性能稳定性优化多年,先后负责过多个项目的性能稳定性测试及测试工具平台的研发工作;当前负责云上终端、前端和跨端性能稳定性可观测产品的技术研发和平台建设《QECon》《HarmonyOS开发者论坛》等大会分享嘉宾《Deeplus》《腾讯程序员》《腾讯云TVP》《腾讯云开发者》等视频号直播嘉宾《腾讯云开发者》《腾讯技术工程》《工程师的分享》等公众号、知乎号媒体矩阵作者《腾讯云开发者社区》原创分享计划资深作者、优质共创者、年度创作之星《解析问题的艺术》课程讲师《腾讯学堂》聘任讲师CONTENTS稳定性问题治理现状与痛点稳定性问题治理现状与痛点多端的复杂性PC端从多端的复杂性PC端从Win端到Mac端;移动端从Android、iOS端扩展到鸿蒙端;跨端技术从WebView到ReactNative、Flutter和小程序;还有平板、车机和手表等新终端的到来,扩大了稳定性问题发生土壤降本的必要性随着AI浪潮来临,很多团队开始“降本增效”和“轻车简行”,开展“一组人员多端开发”的研发模式和“一套人马多端保障”质量管理模式,这对稳定性问题快速发现和解决提出了更高要求业务的多样性业界大型项目对于稳定性问题治理有很高的要求,特别是客户终端,然而这种APP业务场景通常多样复杂,涉及技术域广,第三方组件库多,对研发和质量团队提出了很高的技术要求大前端稳定性问题分类AndroidAndroidJS层MachErrorDeadlockDeadlockNativeCrashANRJavaApplicationApp-LeveWatchdog大前端HarmonyOSWebJava/Kotlin层CppCrashAppFreezeJSCrashAppFreezeChromicrashTypeErrorOOM/内存越界/栈溢出/多线程竞争/同步阻塞/线程终止/时序问OOM/内存越界/栈溢出/多线程竞争/同步阻塞/线程终止/时序问稳定性问题治理思路及原理评估2度量构建完善的问题域指标度量图表基于发布后的度量完成价值举证2度量构建完善的问题域指标度量图表基于发布后的度量完成价值举证治理定位定位通过报表、聚类、堆栈、日志等分析数据完成问题管理与根因分析,确定治理方案解决稳定性问题治理核心思路稳定性事件行为事件性能数据时序数据指标对比版本对比指标下钻格式清洗合规清洗异常数据清洗业务堆栈翻译库/框架堆栈翻译稳定性事件行为事件性能数据时序数据指标对比版本对比指标下钻格式清洗合规清洗异常数据清洗业务堆栈翻译库/框架堆栈翻译异常类型翻译反哺根因算法反哺聚类算法动态聚类算法探测采集清洗翻译稳定性问题治理分析聚类责任归属算法预警监测配置告警策略配置告警通道建设分配告警对比验证修复测试稳定性事件探测采集难点合规权限公开API、未公开API、私有API、系统API实验室调用、灰度调用、线上调用问题探测运行时监控合规权限公开API、未公开API、私有API、系统API实验室调用、灰度调用、线上调用问题探测运行时监控生命周期异常探测、内存使用探测核心难点:多样终端、动态系统、运行时监测源码:探测采集系统存在部分开源、延后开源,这对Hook等数据采集技探测采集系统存在部分开源、延后开源,这对Hook等数据采集技术增加了较大的实现门槛接口:事件收集灰名单接口不可AppStore明确规定上架应用不能使用私有API;部分手机厂商明确表示“厂商系统”部分稳定性数据接口不暴露,Android9+会有黑、事件收集灰名单接口不可反射获取;最终导致部分性能和稳定性数据不能线上采集稳定性事件稳定性事件性能数据、日志数据、行为数据部分终端设备系统大版本更新时,经常出现不向下兼容的情况,由于运行时探测采集逻辑无法实时更新,导致发生探测采集SDK自身出现稳定性问题的情况设备:部分终端设备功能出新,对应接口数据格式变更,由于运行时探测采集逻辑无法实时更新,导致采集数据的准确性下降,出现大量脏数据完全实验室采集指标和详细数据完全实验室采集指标和详细数据实验室采集详细数据线上采集指标数据完全线上采集指标和详细数据实验室采集详细数据线上采集指标数据完全线上采集指标和详细数据主线程监听NSRunloopobserver子线程利用NSTimer定时抓取堆栈主线程监听CADisplayLink屏幕刷新回调子线程利用CADisplayLink回调抓取堆栈基于RunLoopobserver抓栈基于CADisplayLink回调抓栈OC入口方法HookAPP启动APP启动APP或系统版本号是否是否监测到CrashVMAPP或系统升级后台被杀HarmonyOS稳定性事件探测采集自实现原理探测成本高采集难度大探测成本高采集难度大进程MapsJSCrashCPPCrash大前端稳定性事件探测采集原理对比事件监控逻辑实现方式不同Android、iOS和部分Web端需要主动注册对应的监听器,监控逻辑由业务方实现Harmony端是注册系统API提供的接口获取,监控逻辑由Harmony系统方实现信息采集逻辑实现方式不同Android、iOS等端需主动抓取有效信息和数据,包括全量堆栈、日志、寄存器、FD等信息Harmony端将对应事件的有效信息和数据整理好,通过回调给到业务方去解析处理事件信息获取的时机不同Android、iOS、WEB端直接监听到Crash部分现场数据Harmony端是在下一次启动时才会将上一次发生的崩溃事件的相关信息回调给业务方去解析处理维度HarmonyAndroidiOSWEBJava/OC/JS/TS层通过hiAppEvent接APP_CRASH事件的观察者,当发生Crash时,会在下一次启动时回调给通过使用Thread.setDefaultUncaughtExceptionHandler的方式注册全局唯一的监听器,实现uncatchException回调,当发通过NSSetUncaughtExceptionHandler函数全局设置异常处理函数,然后再全局处理函数中采集异常信息WebError类型错误通过对window.onerror方法HOOK来获取,unhandlerejection类型错误通过添加方法window.addEventList监听来获取监听HOOKHOOKHOOK/监听C/C++层通过hiAppEvent注册APP_CRASH事件的观察者,当发生Crash时,会在下一次启动时回调给观察者,在里面对信息的处理及上报基于Linux的信号处理机制,信号不携带数据,仅通知发生什么事件,需要在C++层注册对应的信号处理函数,当触发Crash时会有对应的信号量发出,由信号处理函数拦截处理来捕获这些信号监听HOOKHOOK大前端稳定性问题根因分析算法原理引用关系维度获取现场内存快照,可以根据内存分配与释放对账数据,查找狭义内存泄漏引发的OOM问题的根源;也首系首系业关键字、寄存器及用户行为维度踩内存问题的嫌疑范围崩溃堆栈维度先区分系统栈帧和业务栈帧;其中,大前端稳定性问题特征聚合算法原理寄存器高频、可疑地址寄存器高频、可疑地址应用版本、系统版本栈帧特征对比大前端稳定性问题责任归属算法原理语获语获树归结归开栈帧的修改者、修改时间、修改频次涉版本范围、跨度时间、最初修改时间合根因分析的堆栈、方法;按照先单栈帧、方法归因再堆栈因的步骤;以代码修改情况、代码调用情况、带代码结问题根因堆栈权重计算因子调用关系、总体归属权重根因数据核心堆栈和栈帧、辅助方法、寄存器方法栈帧权重计算因子基于DeepSeek智能治理方案稳定性问题治理核心思路稳定性事件行为事件性能数据时序数据指标对比版本对比指标下钻格式清洗合规清洗异常数据清洗业务堆栈翻译库/框架堆栈翻译稳定性事件行为事件性能数据时序数据指标对比版本对比指标下钻格式清洗合规清洗异常数据清洗业务堆栈翻译库/框架堆栈翻译异常类型翻译反哺根因算法反哺聚类算法动态聚类算法探测采集清洗翻译稳定性问题治理分析聚类责任归属算法预警监测配置告警策略配置告警通道建设分配告警对比验证修复测试稳定性问题智能治理三阶段研发人员结合研发经验构建合适的PromptDeepSeek结合世界知识给出问题的先沉淀通用解决方案到RAG案例库,对输研发人员结合研发经验构建合适的PromptDeepSeek结合世界知识给出问题的先沉淀通用解决方案到RAG案例库,对输后者给出代码级修改方案并生成分支提交记录DeepSeek+RAG+Data+Code+CopilotDeepSeek+DeepSeek+RAG+Data稳定性问题智能治理方案给出可靠的解决建议给出可靠的解决建议•沉淀产品独有、近期的解决方案形成产品议”的步骤自底向上和自顶向下双向分析根因及Copilot需重点检索目标文件和相关Git插件和代码库平台插件Code稳定性问题智能解决建议案例库制作1.按照标准的模版来进行案例沉淀,并进行人工审核;2.然后通过DeepSeek读取给出分割和格式化建议并执行写入RAG数据3.对要新撰写的案例,可以通过结合DeepSeek的解决建议和修改内容给出初稿稳定性问题智能解决建议案例库检索案例库检索结合稳定性问题的核心数据和用户数据,基于全文向量匹配案例库,在大数据量情况下,会返回较多匹配案例,如果都给到DeepSeek进行分析。会出现幻读问题,需要通过Re-Ranking特征重排机制,检索出最相关案例稳定性问题智能解决建议问题原因分类对检索结果进行“自底向上”分析问题分类,这里结果一般不尽人意(因为有噪音所以还要用“以终为始”的思想,从“分析定位并能够通用解决”目标重新规范分析框架,针对具体分类对原始数据进行二次读取分析稳定性问题智能解决建议解决建议框架对于原始核心数据上下文本身不足,无从分析的疑难问题,DeepSeek可能会直接将此类问题分类为其它问题,为避免此类情况发生,专门为这几类疑难问题准备了专属的问题解决建议框架,引导用户提供进一步排查指引稳定性问题智能代码提交录入代码索引结构Index、项目文档Index;提前训练框架文档和代码规范文档,从而增加Copilot学习推个长耗时任务。Copilot与IDE绑定本地缓存,将“Index学习”转变为“一次性”任务稳定性问题智能代码提交DeepSeek解决建议真实的业务代码代码示例联动解决建议中给出正确“方法名真实的业务代码代码示例联动解决建议中给出正确“方法名”的代码修改示例,Copilot可需对DeepSeek的结果进行特殊标注,确保Copilot不会幻读稳定性问题智能代码提交MCP插件MCP插件分支命名规则和Commit注释规范;同时,Copilot需搭配带MCP的Git插件和代码库平台插件,确保完成自动提交代码和发起CR等“最后一公里”总结与展望总结与展望A2AA2A项目代码结构框架文档、代码规范总结与展望责任归属通过最终的代码提交和提交人,智能更新责任归根因分析根因分析智能分析出需要更新的根因分析算法特征聚合通过最终的代码提交和指标对比,智能分析出需要优化的特征聚合算法总结与展望稳定性事件行为事件性能数据时序数据指标对比版本对比指标下钻格式清洗合规清洗异常数据清洗业务堆栈翻译库/框架堆栈翻译稳定性事件行为事件性能数据时序数据指标对比版本对比指标下钻格式清洗合规清洗异常数据清洗业务堆栈翻译库/框架堆栈翻译异常类型翻译反哺根因算法反哺聚类算法根因分析算法静态聚类算法动态聚类算法探测采集清洗翻
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年避坑指南野外施工安全培训内容
- 2026年电子租房合同协议书实操要点
- 2016销售工作总结报告2026年全流程拆解
- 2026年核心技巧抹灰工程安全培训内容
- 2026年安全生产 消防培训内容答题模板
- 新乡市北站区2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 2026年高分策略热电集团安全培训内容
- 保定市定兴县2025-2026学年第二学期五年级语文第六单元测试卷(部编版含答案)
- 海东地区循化撒拉族自治县2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 桂林市兴安县2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 【MOOC】电路基础-西北工业大学 中国大学慕课MOOC答案
- DB32T3916-2020建筑地基基础检测规程
- 2024中国心衰器械白皮书-沙利文
- 人事档案情况摘抄表
- 正常分娩9版妇产科学课件
- 常见的六轴关节机器人的机械结构
- 2022年04月新疆石河子大学医学院第二轮教师招聘0笔试参考题库答案解析版
- 2023年中国电信集团有限公司招聘笔试题库及答案解析
- HY/T 174-2014水下营养盐自动分析仪
- GB/T 37361-2019漆膜厚度的测定超声波测厚仪法
- GB 22134-2008火灾自动报警系统组件兼容性要求
评论
0/150
提交评论