手机淘宝性能优化 - o'reillyvelocity.oreilly.com.cn/2015/ppts/liming.pdf ·...

21
1 手机淘宝性能优化 阿里巴巴集团 无线业务部 终端架构 黎明 邮箱:[email protected]

Upload: others

Post on 10-Dec-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 手机淘宝性能优化 - O'Reillyvelocity.oreilly.com.cn/2015/ppts/liming.pdf · 手机淘宝性能优化 阿里巴巴集团 无线业务部 终端架构 黎明 ... • 日志加密策略

1 � 

手机淘宝性能优化 �  �  � 

阿里巴巴集团 �  � 无线业务部 � 终端架构 � 黎明 � 邮箱:[email protected] � 

Page 2: 手机淘宝性能优化 - O'Reillyvelocity.oreilly.com.cn/2015/ppts/liming.pdf · 手机淘宝性能优化 阿里巴巴集团 无线业务部 终端架构 黎明 ... • 日志加密策略

目录 � 

•  手机APP卡顿的原因 � •  性能监控指标和方法 � •  启动梳理 � •  首页梳理 � •  日志系统优化 � •  图片库优化 � •  网络优化 � •  总结 � 

Page 3: 手机淘宝性能优化 - O'Reillyvelocity.oreilly.com.cn/2015/ppts/liming.pdf · 手机淘宝性能优化 阿里巴巴集团 无线业务部 终端架构 黎明 ... • 日志加密策略

APP性能低的原因 � 

•  表现: � – 切换滑动不流畅,显示慢,响应迟缓 � 

•  原因: � – CPU负荷高 � – 连续IO操作 � – 内存对象创建过多导致频繁GC � – 移动网络 � 低带宽,高丢包率,网域切换频繁,DNS解析慢,域名劫持等。 � 

Page 4: 手机淘宝性能优化 - O'Reillyvelocity.oreilly.com.cn/2015/ppts/liming.pdf · 手机淘宝性能优化 阿里巴巴集团 无线业务部 终端架构 黎明 ... • 日志加密策略

性能监控指标和方法 � 

•  响应时间 � •  帧率FPS � •  GC次数 � 

– LogCat � •  内存占用 � 

– DDMS � – MAT � –  Instruments � 

Page 5: 手机淘宝性能优化 - O'Reillyvelocity.oreilly.com.cn/2015/ppts/liming.pdf · 手机淘宝性能优化 阿里巴巴集团 无线业务部 终端架构 黎明 ... • 日志加密策略

响应时间-目标秒开 � 

Page 6: 手机淘宝性能优化 - O'Reillyvelocity.oreilly.com.cn/2015/ppts/liming.pdf · 手机淘宝性能优化 阿里巴巴集团 无线业务部 终端架构 黎明 ... • 日志加密策略

FPS的计算 � •  Android � “Profile � GPU � rendering” � •  HardwareRenderer.java中GLRender的

� draw()函数: � buildDisplayList() �  � drawDisplayList() � swapBuffers() � 

•  通过无侵入运行期AOP框架(手淘开源项目Dexposed)记录该三部分时间 � 

•  https://github.com/alibaba/dexposed � 

Page 7: 手机淘宝性能优化 - O'Reillyvelocity.oreilly.com.cn/2015/ppts/liming.pdf · 手机淘宝性能优化 阿里巴巴集团 无线业务部 终端架构 黎明 ... • 日志加密策略

FPS的计算 � 

•  iOS � CADisplayLink � 能以屏幕刷新率相同频率将内容画到屏幕上的定时器。 �  � CADisplayLink � 对象添加到runloop,并给它提供target � 和selector � 在屏幕刷新的时候调用。 � 帧率=1/(每一帧的时间间隔) � 

Page 8: 手机淘宝性能优化 - O'Reillyvelocity.oreilly.com.cn/2015/ppts/liming.pdf · 手机淘宝性能优化 阿里巴巴集团 无线业务部 终端架构 黎明 ... • 日志加密策略

针对FPS定目标 � 

•  线上监控灰度版本 � •  线下跑monkey � •  FPS50 � 

8 � 

Page 9: 手机淘宝性能优化 - O'Reillyvelocity.oreilly.com.cn/2015/ppts/liming.pdf · 手机淘宝性能优化 阿里巴巴集团 无线业务部 终端架构 黎明 ... • 日志加密策略

检测GC � 

9 � 

GC_FOR_ALLOC: 内存分配时,发现可用内存不够触发的GC事件。 GC_CONCURRENT: 给java层的class分配内存后,计算已分配的大小达到阈值时会触发的GC事件。

Page 10: 手机淘宝性能优化 - O'Reillyvelocity.oreilly.com.cn/2015/ppts/liming.pdf · 手机淘宝性能优化 阿里巴巴集团 无线业务部 终端架构 黎明 ... • 日志加密策略

手机淘宝启动的梳理 � •  问题的原因: � 各模块集中初始化 � 主线程存在非必要阻塞操作 �  � •  解决方案: � 利用本地缓存,建立离线化 � 任务分级,合理并行 � 懒加载 � 

Page 11: 手机淘宝性能优化 - O'Reillyvelocity.oreilly.com.cn/2015/ppts/liming.pdf · 手机淘宝性能优化 阿里巴巴集团 无线业务部 终端架构 黎明 ... • 日志加密策略
Page 12: 手机淘宝性能优化 - O'Reillyvelocity.oreilly.com.cn/2015/ppts/liming.pdf · 手机淘宝性能优化 阿里巴巴集团 无线业务部 终端架构 黎明 ... • 日志加密策略

对比 � 

方法 收益 成本 适用场景

懒加载 避免不可见页面的加载增加额外负担

书到用时方恨少,页面打开总嫌慢

多tab复杂页面,多任务集中启动

预加载 页面即开即见

用户损失不可见的流量

弱网情况

12 � 

Page 13: 手机淘宝性能优化 - O'Reillyvelocity.oreilly.com.cn/2015/ppts/liming.pdf · 手机淘宝性能优化 阿里巴巴集团 无线业务部 终端架构 黎明 ... • 日志加密策略

首页的梳理 � 

•  布局优化 �  � – 业务上优化结构,技术上简化层次 � – Android: � 使用<merge> � <include> � <Viewstub>标签 � 

Page 14: 手机淘宝性能优化 - O'Reillyvelocity.oreilly.com.cn/2015/ppts/liming.pdf · 手机淘宝性能优化 阿里巴巴集团 无线业务部 终端架构 黎明 ... • 日志加密策略

首页的梳理 � 

UI 线程优化 不要阻塞UI线程 不要在非UI线程中操作UI 元素。

Page 15: 手机淘宝性能优化 - O'Reillyvelocity.oreilly.com.cn/2015/ppts/liming.pdf · 手机淘宝性能优化 阿里巴巴集团 无线业务部 终端架构 黎明 ... • 日志加密策略

日志系统的优化 � 

• 日志拼接的内存复用 � • 限制内存中日志队列的大小 � • 日志加密策略 � •  IO策略 � 

Page 16: 手机淘宝性能优化 - O'Reillyvelocity.oreilly.com.cn/2015/ppts/liming.pdf · 手机淘宝性能优化 阿里巴巴集团 无线业务部 终端架构 黎明 ... • 日志加密策略

图片库的优化 � 

•  阿里CDN提供分辨率,质量,锐化,编码格式四个纬度: � 

•  https://gw.alicdn.com/XXX.jpg_600x600q90s150.jpg

•  图片的URL分为baseurl + 分辨率 � +质量 � +锐化程度 � +编码格式,目前支持webp,jpg,png等 � 

Page 17: 手机淘宝性能优化 - O'Reillyvelocity.oreilly.com.cn/2015/ppts/liming.pdf · 手机淘宝性能优化 阿里巴巴集团 无线业务部 终端架构 黎明 ... • 日志加密策略

图片策略 � 

•  手淘图片策略库有一套强弱网自适应,图片复用的图片缓存机制。 � 

� •  经验:当锐化程度高时,即使质量较低

,图片色彩清晰度也能让用户满意。 � 

Page 18: 手机淘宝性能优化 - O'Reillyvelocity.oreilly.com.cn/2015/ppts/liming.pdf · 手机淘宝性能优化 阿里巴巴集团 无线业务部 终端架构 黎明 ... • 日志加密策略

图片库如何降低内存占用 � 

Page 19: 手机淘宝性能优化 - O'Reillyvelocity.oreilly.com.cn/2015/ppts/liming.pdf · 手机淘宝性能优化 阿里巴巴集团 无线业务部 终端架构 黎明 ... • 日志加密策略

网络的优化 � 

报文缩减

域名收敛

H%pDNS

SPDY长连

TCP调优

Page 20: 手机淘宝性能优化 - O'Reillyvelocity.oreilly.com.cn/2015/ppts/liming.pdf · 手机淘宝性能优化 阿里巴巴集团 无线业务部 终端架构 黎明 ... • 日志加密策略

总结 � 

分析原因

建立监控

设立目标

执行优化

验证数据

Page 21: 手机淘宝性能优化 - O'Reillyvelocity.oreilly.com.cn/2015/ppts/liming.pdf · 手机淘宝性能优化 阿里巴巴集团 无线业务部 终端架构 黎明 ... • 日志加密策略

总结 � 

21 �