《2-抖音iOS客户端性能防劣化实践-抖音集团-陈驿波.pdf》由会员分享,可在线阅读,更多相关《2-抖音iOS客户端性能防劣化实践-抖音集团-陈驿波.pdf(41页珍藏版)》请在三个皮匠报告上搜索。
1、抖音iOS客户端性能防劣化实践十余年iOS一线研发与技术管理经验分享人:陈驿波在头部视频应用和互联网金融科技行业参与和主导多个千万级别大型应用技术基建和团队管理工作。目前主要负责抖音iOS客户端工具链建设、性能防劣化与诊断调优体系建设目录性能防劣化背景版本间防劣化MR防劣化总结和规划0102030401 性能防劣化背景设备碎片化测试效率低下无法”防”住劣化覆盖的设备型号和系统多样化:机型=iPhone 6系统=iOS 11.0功能测试消耗大量人力性能测试覆盖度不够缺乏有效手段和工具问题难以归因治理难度大传统的劣化后再治理的方式需要花费大量的时间和精力随着业务的快速迭代,之前的优化成果可能会很快
2、再次劣化版本间防劣化指标防劣化建设Trace分析防劣化建设02指标防劣化-接入流程初筛和问题消费指标的作用l 关联埋点,获取场景耗时l 根据指标波动判断是否劣化,实现平台劣化报警l 匹配函数堆栈,实现trace截取与分析思考:指标防劣化存在的问题?存在的问题指标的统计口径不一致,不同的系统可能存在差异随着业务的迭代或者架构的调整,会出现埋点对不齐或者失效的情况,维护成本大易受环境干扰,数据波动大,劣化报警和归因准确率低,需要投入大量人力初筛无法拦截子阶段劣化问题,容易出现劣化问题逃逸。Trace分析防劣化建设动态插桩动态插桩无需维护指标和埋点,对业务无侵入,接入成本更低支持子阶段防劣化支持子阶
3、段防劣化基于Trace diff分析,只要子阶段出现劣化,一样可以归因发现归因更准确归因更准确通过分析逻辑变更来判断是否劣化,而非耗时的数值变化,归因准确率得到明显提升多维置信度计算多维置信度计算除了基于统计学算法的异常数据剔除,同时增加了堆栈相似度变更、静态代码变更分析等多维置信度计算客户端防劣化工具链建设 采集工具介绍:工具的选型、常用命令、iOS Trace介绍 Trace标准化:背景、Trace对比、函数调用关系链和计算函数耗时 符号化:dSYM和Load Address 常见问题与解决思路工具建设-采集工具选型工具工具优点优点缺点缺点Instruments苹果官方提供,稳定性好,功能
4、强大提供可视化界面对App性能有一定影响不支持命令行采集xctrace 苹果官方提供,稳定性好,功能强大 支持命令行集成 无侵入,对App性能影响小基于采样,部分耗时较短的函数可能采集不到基于协议逆向的工具 基于通信协议逆向,对App性能影响小 提供可视化界面 支持常见指标的采集和诊断能力不具备通用的Trace采集能力不支持自定义需求第三方插件 可以根据需求支持各种自定义能力侵入式接入成本高对App性能有较大影响xctrace的特点:稳定性高、无侵入、低损耗、支持命令行集成xctrace常用命令xctrace record-output aweme.trace-template Time Pr
5、ofiler-device 00008101-0012642624A1401E-launch-com.ss.iphone.ugc.Awemexctrace record-output aweme.trace-template Time Profiler-device 00008101-0012642624A1401E-all-processes-time-limit 10sxctrace export-input aweme.trace-xpath/trace-toc/runnumber=1/data/tableschema=time-profile-output aweme.xml 开始采集
6、 停止采集 导出采样数据文件结构预览xctrace export-input aweme.trace-toc/trace/trace-toc/runnumber=1/data/tableschema=timetoc/runnumber=1/data/tableschema=time-profileprofile采样文件初识l 基于采样,采样频率是1ms1msl 格式固定,可以通过脚本和自动化工具进行分析和处理l 每行采样数据包含 采样时间、进程、线程、堆栈地址列表 等数据Trace标准化Trace标准化的目的:复用更成熟的分析服务,解决指标防劣化存在的问题,避免重复建设Trace对比标准化前标