#学习心得#APM第一讲应用性能监控理论基础原创
应用性能监控是什么
应用
ios,app,pc
性能
performance用户体验,
注重 快:流畅,稳:崩溃,省:资源占用省
监控那些性能
一,快:
1.启动监控:冷启动,热启动
2..卡顿监控:主线程消息执行耗时,
3.页面监控:监控页面打开耗时,页面打开NLS帧率
4.网络监控:网络响应
二,稳:
1.Java崩溃
2.Native崩溃
3.ANR监控
4.OOM监控
三,省:
1.内存监控:
java内存,虚拟内存,显存
2.CPU监控:
APP使用率和各个线程使用率
3.电量监控:
温度监控,异常定位,CPU异常监控
4.磁盘监控:
如何进行监控
监控核心是围绕用户体验建立指标和进行异常归因。 问题监控,采集,上报,聚合,前端展示 问题分配,分析,修复,指标验证 总结:应用性能监控是为了优化用户体验,从用户体验的角度进行性能优化
为什么要做性能监控
崩溃,卡,耗电严重,手机发烫,占用磁盘过大,网络怎么失败,
性能监控有哪些收益
**确保应用的可用性,提升用户体验,获得业务收益**
**业务指标**:DAU,次日存留,直播的开播率,电商的GMV等
如何进行优化
确认优化指标优先级
两个因素:影响用户比例和用户感知程度 占位:14:58优先级图片
应用性能监控和优化流程
1.理论分析 从底层原理出发更加全局的视角来思考优化目标和策略
现状分析 使用线上监控工具,确认线上指标现状,根据归因数据,确认优化方向
性能优化 根据排查出的问题和方向,针对性的性能优化
线上验证
**确认指标**,技术指标或者业务指标 ### 防劣化 优化之后如何保持效果,需要持续的对迭代版本进行有效监控。可通过自动化测试,大对象问题,尽早发现解决问题 优化第一步建立线上指标监控,最好可以准确的进行归因定位。
使用APM排查Crash分享
在参加APM举办的性能分析专场,学会了一些排查Crash的思路和该工具的使用,接下来我来分享下一个案例,来带大家熟悉这个平台。
OOM
众所周知,OOM是内存分配失败导致的,申请的内存不够我们使用的时候就会报这个异常,在APM平台上Crash 日志为:
可以看到剩余的空间满足不了分配的空间,Total Space-FreeSpace=Used Space这是内存计算公式
Native崩溃
在场景中,我试着创建线程但是好像陷入到了死循环当中(代码错误,忘记使用线程池)。
再线程中我又去访问一个本地文件,这导致了我的FD过多,一个进程打开的FD数量是有限的,一般在一千个左右。所以去APM平台上差了下日志,发现确实如此: