应用性能可视化监控实践_第1页
应用性能可视化监控实践_第2页
应用性能可视化监控实践_第3页
应用性能可视化监控实践_第4页
应用性能可视化监控实践_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、应用性能可视化监控实践1APM的概念模型/prioritizing-gartners-apm-model2重要次要重要 次要 重要稳定的运行环境稳定的网络连接流畅的操作界面尽量少的资源消耗漂亮的视觉交互3聚焦终端用户的体验/apm-evolution-end-user-experience稳定的运行环境4iOS Crash的问题的现状5iOS Crash的问题的现状6Crash分析与处理方法传统方式开发阶段开发人员Debug调试验证测试人员测试验证,提供设备奔溃日志给开发人员分析发布阶段用户反馈,开发人员debug复现用户反馈,导出crashlog给开发分析通过iTunes connect服务

2、提供的Crash Report日志APM服务集成SDK开发&发布阶段Crash日志云端查询Crash率异常短信告警Crash 类型分类0 x000000008badf00d 0 x00000000000000007Crash日志流程图8采集类型工具脚本服务端解码性能Abort 率采集原理应用Active时,写入标记文件应用非active,清除标记文件 应用启动时是否有标记文件,上传Crash埋点开始点击AppIcon应用active写入启动标志是否存在crash日志是应用noactive清除启动标志上传Crash(无堆栈)结束否CrashLow Memory CrashWatchdog tim

3、eout (0 x8badf00d) 电量监控9实时Crash10Crash 详情11稳定的网络连接12移动网络传输链路13网络拓扑NSURLSessionTaskTransactionMetrics14指标错误率 每分钟请求量 平均响应时间15方式一:method Swizzling16方法二:Proxy转发17方法三:动态binding18NSURLConnection 实践19NSURLSession 实践20CFNetworking实践21网络错误列表22网络错误详情23网络拓扑24http请求25流畅的操作界面26Darwin 内核结构系统状态内核层APIUnix接口Applicat

4、ion environmentsCommon Service27RunLoop任务分发方案一:监听FPS 降低 CADisplayLink 方案二:主线程 Runloop 执行2829RunLoop原理RunLoop1.通知Observer:即将进入runLoop2.通知Observer:即将处理timer3.通知Observer:即将处理source04.处理 blocks & Source05.如果有Source1,跳到9步6.通知Observer线程即将休眠7.休眠等待唤醒8.通知Observer线程刚被唤醒9.处理唤醒时收到的消息,之后跳回210.通知Observer即将退出runlo

5、opkCFRunloopBefore TimerskCFRunloopBeforeS ource处理事件响应刷新UIkCFRunloopBefore WaitingkCFRunloopAfterW aiting刷新UI卡顿检测原理主线程RunLoop1.通知Observer:即将进入runLoop2.通知Observer:即将处理timer3.通知Observer:即将处理source04.处理 blocks & Source05.如果有Source1,跳到9步6.通知Observer线程即将休眠7.休眠等待唤醒8.通知Observer线程刚被唤醒9.处理唤醒时收到的消息,之后跳回210.通知

6、Observer即将退出runloopkCFRunloopBefore TimerskCFRunloopBeforeS ource处理事件响应刷新UIkCFRunloopBefore WaitingkCFRunloopAfterW aiting刷新UI监听线程注册Runloop回调循环检测主线程runloop计数器+runloop是否跑完source的状态否计数器N dump 内存堆栈30卡顿检测的问题问题:数据量大,实时处理有困难,数据采集可能影响到业务服务器的性能一直check和dump堆栈比较耗电启动和退后台卡顿解决:用户采样按堆栈做聚合触屏调整watch dog 动态调整31尽量少的资

7、源消耗32遇到的性能问题发热卡顿OOMCPU内存帧率IO电量33监控点获得CPU,内存数据mach_task_self()task_info()resident_sizeThreadsexcep tpthread “com.alibaba.malimonitor”thread_info()cpu_usage34遍历task_threads()mach_task_self电量获取方案UIDevice currentDevice得到BatteryState和BatteryLevel方案一方案二35IOKitpath:/System/Library/Frameworks/IOKit.framework得到InstantAmperage(电流)和Voltage(电压)电量获取方案方案三 替换线程allocator方案四这些表中包含了iOS系统采集的所有应用的小时级别的耗电量36电量获取方案37方案优点缺点UIDevice属性简单粗粒度,不符合要求IOKit可以拿到当前的电流电压无法精确到应用级别替换线程Allocator拿到数据同上

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论