SlideShare a Scribd company logo
1 of 42
Download to read offline
M站前端性能优化
刘哲 - 2015
Performance means revenue
• Server Cost
• Bandwidth Cost
• User Lose
WPO to business
• Facebook pages that are 500ms slower result in a 3% drop-off in traffic,
1000ms is 6% drop-off
• If Amazon increased page load time by +100ms they lose 1% of sales
• If Google increased page load by +500 ms they get 25% fewer searches
性能优化点
• ⺴⽹网络传输
• 传输效率:延迟和带宽
• 传输⼤大⼩小
• 数据呈现
• DOM Tree
• Render Tree
• Animation,paint
• javascript
• Bandwidth
• Latency/RTT
Bandwidth
• 慢启动
• 拥塞窗⼝口机制
• 依赖顺序
受限TCP机制
边际效应
提⾼高带宽也许不是
当前最重要的
Latency
Last Mile
Depend On Performance
Analysis, Not Intuition
Browser interface for Timings
performance.timing
Custom Timing
• DOM load time
• Page load time
• Above the fold time
• Cache Hit Rate
• Ajax state ready time
http://203.130.42.237/s.gif?
rt_index_index=488&la=234&dl=132&ex_cchr=0%2F17
&ns=0&fs=325&dls=325&dle=325&cs=325&ce=325&rq
s=330&rss=379&rse=397&ds=398&di=752&dcs=752&d
ce=763&de=859&ls=859&le=882&tp=ol&aid=1&pid=
%2Findex%2Findex%2F&ct=unknown
send beacon
Beacon API: navigator.sendBeacon(url, data);
Log
Node A
mongo
node-mailer
Node BTimer
Timer
⽇日志分析
charted
邮件报表
可视化⼯工具(charted)
Speed Index
• Above the fold time
• Cache Hit Rate
• API cost time
其他
• Webpagetest/Pagespeed
• Browser DevTools
• 降低延迟,增加有效带宽
• 减少传输体积,减少RTT次数
• 减少⾸首屏时间
优化⽅方向
减少延迟,增加有效带宽
• 增加init cwnd
• 禁⽌止空闲慢启动
投⼊入产出⽐比低
• 优化server配置
• DNS查询
CDN
• 优化服务器配置(优化TCP相关配置,e.g. : init cwnd)
• 降低延迟,有效带宽
• 性能分析和监控
dns lookup?
减少传输体积
• Reduce requests
• Reduce bytes
Reduce requests
• combine js & css
• localStorage(js,css)
• full cache (image,js,css)
• HTTP header : cache-control
md5版本号
MRequire.js
Loader
前端资源管理机制
已加载?
xx.js/xx.css
依赖?
combo
sever
否
是
回调
是
否 localStorage
require([‘index.css’, ‘index.js’])
success
request
response
index.css@{md5_version}};
index.js@{md5_version}
队列
插⼊入
检查队列
是
维护依赖关系和顺序
Full Cache
Reduce bytes
• compress html & image & js & css
• gzip
• remove unused code
⾸首屏
优化⾸首屏
• 优先加载关键资源,lazy load⾮非关键资源
• 延迟处理cnzz、性能统计
• 延迟地图初始化
• 资源按模块加载
• 分模块加载js,css
• 根据依赖关系按需加载
• 定位和地图功能分离
• 合适的代码粒度
mo.js + api
mo.js + api + index.js
36.1k + 4.1k
50k + ~60K + 4.1k
37k
(main.css)
5.8k
112k + ~60k
⾸首⻚页⾸首屏加载资源(gzip)
mo.js + index.js
pre-*预处理
Dns prefetch
<link rel="dns-prefetch" href="//c.amap.com">
prefetch
<link rel='prefetch' href='secondary.js'>
模拟:
⻚页⾯面ready后
预加载相关资源
prerender
<link rel='prerender' href='http://m.amap.com/discover/XXX'>
数据呈现
• localStorage性能问题 : IO问题
• 原⽣生scroll (电影排期表)
Check List
• DOM CRUD: 组件化
• Animation,paint
• HTTP 2.0
• HTTP/1, 30ms latency
• HTTP/2, 30ms latency
• JS调优
QA

More Related Content

Similar to M performace-report beta2

淘宝网前台应用性能优化实践
淘宝网前台应用性能优化实践淘宝网前台应用性能优化实践
淘宝网前台应用性能优化实践丁 宇
 
前端性能优化&测试
前端性能优化&测试前端性能优化&测试
前端性能优化&测试tbmallf2e
 
移动社交网络动态框架 李章晶
移动社交网络动态框架 李章晶移动社交网络动态框架 李章晶
移动社交网络动态框架 李章晶Shaoning Pan
 
排行榜V3项目总结
排行榜V3项目总结排行榜V3项目总结
排行榜V3项目总结Frank Xu
 
大规模高性能计算集群优化.pdf
大规模高性能计算集群优化.pdf大规模高性能计算集群优化.pdf
大规模高性能计算集群优化.pdfchachachat
 
淘宝搜索前端优化
淘宝搜索前端优化淘宝搜索前端优化
淘宝搜索前端优化Frank Xu
 
Android消息推送实现 | 友盟 徐仙明
Android消息推送实现 | 友盟 徐仙明 Android消息推送实现 | 友盟 徐仙明
Android消息推送实现 | 友盟 徐仙明 imShining @DevCamp
 
前端性能优化和自动化
前端性能优化和自动化前端性能优化和自动化
前端性能优化和自动化kaven yan
 
淘宝前端开发关键词
淘宝前端开发关键词淘宝前端开发关键词
淘宝前端开发关键词jay li
 
Mock Server的应用与实践
Mock Server的应用与实践Mock Server的应用与实践
Mock Server的应用与实践qi lei
 
http flood and mobile app
http flood and mobile apphttp flood and mobile app
http flood and mobile appim_yunshu
 
Zimbra 功能特性和优势概述
Zimbra 功能特性和优势概述Zimbra 功能特性和优势概述
Zimbra 功能特性和优势概述ITband
 
腾讯大讲堂17 性能优化不是仅局限于后台(qzone)
腾讯大讲堂17 性能优化不是仅局限于后台(qzone)腾讯大讲堂17 性能优化不是仅局限于后台(qzone)
腾讯大讲堂17 性能优化不是仅局限于后台(qzone)topgeek
 
新浪云计算公开课第一期:Let’s run @ sae(丛磊)
新浪云计算公开课第一期:Let’s run @ sae(丛磊)新浪云计算公开课第一期:Let’s run @ sae(丛磊)
新浪云计算公开课第一期:Let’s run @ sae(丛磊)锐 张
 
使用Big pipe提升浏览速度 wk_velocity
使用Big pipe提升浏览速度 wk_velocity使用Big pipe提升浏览速度 wk_velocity
使用Big pipe提升浏览速度 wk_velocitykumawu
 
优化It网络架构 加速云计算服务
优化It网络架构 加速云计算服务优化It网络架构 加速云计算服务
优化It网络架构 加速云计算服务ITband
 
Traffic server overview
Traffic server overviewTraffic server overview
Traffic server overviewqianshi
 
百度新首页性能优化
百度新首页性能优化百度新首页性能优化
百度新首页性能优化Welefen Lee
 
我國寬頻上網速率評量試驗計畫第一階段成果摘要報告
我國寬頻上網速率評量試驗計畫第一階段成果摘要報告我國寬頻上網速率評量試驗計畫第一階段成果摘要報告
我國寬頻上網速率評量試驗計畫第一階段成果摘要報告jessie0203
 

Similar to M performace-report beta2 (20)

淘宝网前台应用性能优化实践
淘宝网前台应用性能优化实践淘宝网前台应用性能优化实践
淘宝网前台应用性能优化实践
 
前端性能优化&测试
前端性能优化&测试前端性能优化&测试
前端性能优化&测试
 
移动社交网络动态框架 李章晶
移动社交网络动态框架 李章晶移动社交网络动态框架 李章晶
移动社交网络动态框架 李章晶
 
排行榜V3项目总结
排行榜V3项目总结排行榜V3项目总结
排行榜V3项目总结
 
大规模高性能计算集群优化.pdf
大规模高性能计算集群优化.pdf大规模高性能计算集群优化.pdf
大规模高性能计算集群优化.pdf
 
淘宝搜索前端优化
淘宝搜索前端优化淘宝搜索前端优化
淘宝搜索前端优化
 
Android消息推送实现 | 友盟 徐仙明
Android消息推送实现 | 友盟 徐仙明 Android消息推送实现 | 友盟 徐仙明
Android消息推送实现 | 友盟 徐仙明
 
前端性能优化和自动化
前端性能优化和自动化前端性能优化和自动化
前端性能优化和自动化
 
淘宝前端开发关键词
淘宝前端开发关键词淘宝前端开发关键词
淘宝前端开发关键词
 
Mock Server的应用与实践
Mock Server的应用与实践Mock Server的应用与实践
Mock Server的应用与实践
 
http flood and mobile app
http flood and mobile apphttp flood and mobile app
http flood and mobile app
 
Zimbra 功能特性和优势概述
Zimbra 功能特性和优势概述Zimbra 功能特性和优势概述
Zimbra 功能特性和优势概述
 
腾讯大讲堂17 性能优化不是仅局限于后台(qzone)
腾讯大讲堂17 性能优化不是仅局限于后台(qzone)腾讯大讲堂17 性能优化不是仅局限于后台(qzone)
腾讯大讲堂17 性能优化不是仅局限于后台(qzone)
 
新浪云计算公开课第一期:Let’s run @ sae(丛磊)
新浪云计算公开课第一期:Let’s run @ sae(丛磊)新浪云计算公开课第一期:Let’s run @ sae(丛磊)
新浪云计算公开课第一期:Let’s run @ sae(丛磊)
 
使用Big pipe提升浏览速度 wk_velocity
使用Big pipe提升浏览速度 wk_velocity使用Big pipe提升浏览速度 wk_velocity
使用Big pipe提升浏览速度 wk_velocity
 
优化It网络架构 加速云计算服务
优化It网络架构 加速云计算服务优化It网络架构 加速云计算服务
优化It网络架构 加速云计算服务
 
Traffic server overview
Traffic server overviewTraffic server overview
Traffic server overview
 
PWA
PWAPWA
PWA
 
百度新首页性能优化
百度新首页性能优化百度新首页性能优化
百度新首页性能优化
 
我國寬頻上網速率評量試驗計畫第一階段成果摘要報告
我國寬頻上網速率評量試驗計畫第一階段成果摘要報告我國寬頻上網速率評量試驗計畫第一階段成果摘要報告
我國寬頻上網速率評量試驗計畫第一階段成果摘要報告
 

M performace-report beta2