
上篇Framework聊完,这篇进入性能优化。P7+面试考的是"怎么设计线上APM系统?启动从1.5s降到800ms怎么做的?卡顿怎么定位到代码行?"阿里对性能要求极高——淘宝首页每慢100ms转化率降1%。P7+要能设计方案而不仅是会用工具。今天8道题覆盖P7+性能优化核心考点。Q1:阿里APM方案设计?APM(Application Performance Monitoring):线上性能监控系统,采集用户设备的真实性能数据。核心指标:启动耗时(冷启动/热启动)、页面帧率(FPS/掉帧率)、卡顿率(单帧16.6ms的比例)、Crash率、ANR率、网络成功率、网络耗时。采集方式:启动耗时用SystemClock.elapsedRealtime()记录各阶段时间点上报。帧率用Choreographer.postFrameCallback统计每帧耗时。卡顿检测用Looper的Printer——Looper.getMainLooper().setMessageLogging监控dispatchMessage耗时。数据聚合:端侧采集原始数据 → 聚合后上报(减少请求次数)→ 服务端按版本/机型/系统版本分维度聚合 → 大盘看板(P50/P90/P99分位值)。追问:为什么用P90/P99而不用平均值?平均值被极端值拉偏。P90表示90%用户体验在这个值以下,更能反映真实体验。