SlideShare una empresa de Scribd logo
1 de 38
Descargar para leer sin conexión
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慢启动
• 拥塞窗⼝口机制
• 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配置
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
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: 组件化
• HTTP 2.0
• Animation
• JS调优
QA

Más contenido relacionado

Destacado

2014 Hpocon 周辉 大众点评 - 大众点评混合开发模式下的加速尝试
2014 Hpocon 周辉   大众点评 - 大众点评混合开发模式下的加速尝试2014 Hpocon 周辉   大众点评 - 大众点评混合开发模式下的加速尝试
2014 Hpocon 周辉 大众点评 - 大众点评混合开发模式下的加速尝试Michael Zhang
 
Lean Message Architecture Highlights
Lean Message Architecture HighlightsLean Message Architecture Highlights
Lean Message Architecture Highlightssunng87
 
旺铺前端设计分享
旺铺前端设计分享旺铺前端设计分享
旺铺前端设计分享fangdeng
 
浏览器渲染与web前端开发
浏览器渲染与web前端开发浏览器渲染与web前端开发
浏览器渲染与web前端开发Duoyi Wu
 
React单页应用性能调优实践
React单页应用性能调优实践React单页应用性能调优实践
React单页应用性能调优实践spray_lx
 
前端MVC之backbone
前端MVC之backbone前端MVC之backbone
前端MVC之backboneJerry Xie
 
百姓网如何优化网速-Qcon2011
百姓网如何优化网速-Qcon2011百姓网如何优化网速-Qcon2011
百姓网如何优化网速-Qcon2011Yiwei Ma
 
聊聊我接触的集群管理
聊聊我接触的集群管理聊聊我接触的集群管理
聊聊我接触的集群管理rfyiamcool
 
美团点评技术沙龙13-前端工程化开发方案app-proto介绍
美团点评技术沙龙13-前端工程化开发方案app-proto介绍美团点评技术沙龙13-前端工程化开发方案app-proto介绍
美团点评技术沙龙13-前端工程化开发方案app-proto介绍美团点评技术团队
 
美团点评技术沙龙05 - 前后端联调方案探索与应用
美团点评技术沙龙05 - 前后端联调方案探索与应用美团点评技术沙龙05 - 前后端联调方案探索与应用
美团点评技术沙龙05 - 前后端联调方案探索与应用美团点评技术团队
 
美团点评技术沙龙05 - 浅谈前端工程化
美团点评技术沙龙05 - 浅谈前端工程化美团点评技术沙龙05 - 浅谈前端工程化
美团点评技术沙龙05 - 浅谈前端工程化美团点评技术团队
 
3 a forum 2016 陆金所前端进化论 微服务之路(public)
3 a forum 2016 陆金所前端进化论 微服务之路(public)3 a forum 2016 陆金所前端进化论 微服务之路(public)
3 a forum 2016 陆金所前端进化论 微服务之路(public)Ufo Qiao
 
使用NodeJS构建静态资源管理系统
使用NodeJS构建静态资源管理系统使用NodeJS构建静态资源管理系统
使用NodeJS构建静态资源管理系统Frank Xu
 
Building Universal Applications with Angular 2
Building Universal Applications with Angular 2Building Universal Applications with Angular 2
Building Universal Applications with Angular 2Minko Gechev
 

Destacado (17)

2014 Hpocon 周辉 大众点评 - 大众点评混合开发模式下的加速尝试
2014 Hpocon 周辉   大众点评 - 大众点评混合开发模式下的加速尝试2014 Hpocon 周辉   大众点评 - 大众点评混合开发模式下的加速尝试
2014 Hpocon 周辉 大众点评 - 大众点评混合开发模式下的加速尝试
 
Lean Message Architecture Highlights
Lean Message Architecture HighlightsLean Message Architecture Highlights
Lean Message Architecture Highlights
 
Web App Mvc
Web App MvcWeb App Mvc
Web App Mvc
 
nodejs开发web站点
nodejs开发web站点nodejs开发web站点
nodejs开发web站点
 
旺铺前端设计分享
旺铺前端设计分享旺铺前端设计分享
旺铺前端设计分享
 
浏览器渲染与web前端开发
浏览器渲染与web前端开发浏览器渲染与web前端开发
浏览器渲染与web前端开发
 
React单页应用性能调优实践
React单页应用性能调优实践React单页应用性能调优实践
React单页应用性能调优实践
 
前端MVC之backbone
前端MVC之backbone前端MVC之backbone
前端MVC之backbone
 
Meteor
MeteorMeteor
Meteor
 
百姓网如何优化网速-Qcon2011
百姓网如何优化网速-Qcon2011百姓网如何优化网速-Qcon2011
百姓网如何优化网速-Qcon2011
 
聊聊我接触的集群管理
聊聊我接触的集群管理聊聊我接触的集群管理
聊聊我接触的集群管理
 
美团点评技术沙龙13-前端工程化开发方案app-proto介绍
美团点评技术沙龙13-前端工程化开发方案app-proto介绍美团点评技术沙龙13-前端工程化开发方案app-proto介绍
美团点评技术沙龙13-前端工程化开发方案app-proto介绍
 
美团点评技术沙龙05 - 前后端联调方案探索与应用
美团点评技术沙龙05 - 前后端联调方案探索与应用美团点评技术沙龙05 - 前后端联调方案探索与应用
美团点评技术沙龙05 - 前后端联调方案探索与应用
 
美团点评技术沙龙05 - 浅谈前端工程化
美团点评技术沙龙05 - 浅谈前端工程化美团点评技术沙龙05 - 浅谈前端工程化
美团点评技术沙龙05 - 浅谈前端工程化
 
3 a forum 2016 陆金所前端进化论 微服务之路(public)
3 a forum 2016 陆金所前端进化论 微服务之路(public)3 a forum 2016 陆金所前端进化论 微服务之路(public)
3 a forum 2016 陆金所前端进化论 微服务之路(public)
 
使用NodeJS构建静态资源管理系统
使用NodeJS构建静态资源管理系统使用NodeJS构建静态资源管理系统
使用NodeJS构建静态资源管理系统
 
Building Universal Applications with Angular 2
Building Universal Applications with Angular 2Building Universal Applications with Angular 2
Building Universal Applications with Angular 2
 

Similar a 高德地图M站性能优化

淘宝前台系统性能分析与优化
淘宝前台系统性能分析与优化淘宝前台系统性能分析与优化
淘宝前台系统性能分析与优化丁 宇
 
Truck js 高性能移动web开发解决方案
Truck js 高性能移动web开发解决方案Truck js 高性能移动web开发解决方案
Truck js 高性能移动web开发解决方案美团技术团队
 
淘宝网前台应用性能优化实践
淘宝网前台应用性能优化实践淘宝网前台应用性能优化实践
淘宝网前台应用性能优化实践丁 宇
 
新浪微博平台与安全架构
新浪微博平台与安全架构新浪微博平台与安全架构
新浪微博平台与安全架构n716
 
前端性能优化&测试
前端性能优化&测试前端性能优化&测试
前端性能优化&测试tbmallf2e
 
移动社交网络动态框架 李章晶
移动社交网络动态框架 李章晶移动社交网络动态框架 李章晶
移动社交网络动态框架 李章晶Shaoning Pan
 
大规模高性能计算集群优化.pdf
大规模高性能计算集群优化.pdf大规模高性能计算集群优化.pdf
大规模高性能计算集群优化.pdfchachachat
 
Mock Server的应用与实践
Mock Server的应用与实践Mock Server的应用与实践
Mock Server的应用与实践qi lei
 
Android消息推送实现 | 友盟 徐仙明
Android消息推送实现 | 友盟 徐仙明 Android消息推送实现 | 友盟 徐仙明
Android消息推送实现 | 友盟 徐仙明 imShining @DevCamp
 
Traffic server overview
Traffic server overviewTraffic server overview
Traffic server overviewqianshi
 
排行榜V3项目总结
排行榜V3项目总结排行榜V3项目总结
排行榜V3项目总结Frank Xu
 
淘宝前端开发关键词
淘宝前端开发关键词淘宝前端开发关键词
淘宝前端开发关键词jay li
 
前端性能优化和自动化
前端性能优化和自动化前端性能优化和自动化
前端性能优化和自动化kaven yan
 
腾讯大讲堂17 性能优化不是仅局限于后台(qzone)
腾讯大讲堂17 性能优化不是仅局限于后台(qzone)腾讯大讲堂17 性能优化不是仅局限于后台(qzone)
腾讯大讲堂17 性能优化不是仅局限于后台(qzone)topgeek
 
优化It网络架构 加速云计算服务
优化It网络架构 加速云计算服务优化It网络架构 加速云计算服务
优化It网络架构 加速云计算服务ITband
 
使用Big pipe提升浏览速度 wk_velocity
使用Big pipe提升浏览速度 wk_velocity使用Big pipe提升浏览速度 wk_velocity
使用Big pipe提升浏览速度 wk_velocitykumawu
 
新浪云计算公开课第一期:Let’s run @ sae(丛磊)
新浪云计算公开课第一期:Let’s run @ sae(丛磊)新浪云计算公开课第一期:Let’s run @ sae(丛磊)
新浪云计算公开课第一期:Let’s run @ sae(丛磊)锐 张
 
http flood and mobile app
http flood and mobile apphttp flood and mobile app
http flood and mobile appim_yunshu
 
前端性能测试
前端性能测试前端性能测试
前端性能测试tbmallf2e
 
Nodejs & NAE
Nodejs & NAENodejs & NAE
Nodejs & NAEq3boy
 

Similar a 高德地图M站性能优化 (20)

淘宝前台系统性能分析与优化
淘宝前台系统性能分析与优化淘宝前台系统性能分析与优化
淘宝前台系统性能分析与优化
 
Truck js 高性能移动web开发解决方案
Truck js 高性能移动web开发解决方案Truck js 高性能移动web开发解决方案
Truck js 高性能移动web开发解决方案
 
淘宝网前台应用性能优化实践
淘宝网前台应用性能优化实践淘宝网前台应用性能优化实践
淘宝网前台应用性能优化实践
 
新浪微博平台与安全架构
新浪微博平台与安全架构新浪微博平台与安全架构
新浪微博平台与安全架构
 
前端性能优化&测试
前端性能优化&测试前端性能优化&测试
前端性能优化&测试
 
移动社交网络动态框架 李章晶
移动社交网络动态框架 李章晶移动社交网络动态框架 李章晶
移动社交网络动态框架 李章晶
 
大规模高性能计算集群优化.pdf
大规模高性能计算集群优化.pdf大规模高性能计算集群优化.pdf
大规模高性能计算集群优化.pdf
 
Mock Server的应用与实践
Mock Server的应用与实践Mock Server的应用与实践
Mock Server的应用与实践
 
Android消息推送实现 | 友盟 徐仙明
Android消息推送实现 | 友盟 徐仙明 Android消息推送实现 | 友盟 徐仙明
Android消息推送实现 | 友盟 徐仙明
 
Traffic server overview
Traffic server overviewTraffic server overview
Traffic server overview
 
排行榜V3项目总结
排行榜V3项目总结排行榜V3项目总结
排行榜V3项目总结
 
淘宝前端开发关键词
淘宝前端开发关键词淘宝前端开发关键词
淘宝前端开发关键词
 
前端性能优化和自动化
前端性能优化和自动化前端性能优化和自动化
前端性能优化和自动化
 
腾讯大讲堂17 性能优化不是仅局限于后台(qzone)
腾讯大讲堂17 性能优化不是仅局限于后台(qzone)腾讯大讲堂17 性能优化不是仅局限于后台(qzone)
腾讯大讲堂17 性能优化不是仅局限于后台(qzone)
 
优化It网络架构 加速云计算服务
优化It网络架构 加速云计算服务优化It网络架构 加速云计算服务
优化It网络架构 加速云计算服务
 
使用Big pipe提升浏览速度 wk_velocity
使用Big pipe提升浏览速度 wk_velocity使用Big pipe提升浏览速度 wk_velocity
使用Big pipe提升浏览速度 wk_velocity
 
新浪云计算公开课第一期:Let’s run @ sae(丛磊)
新浪云计算公开课第一期:Let’s run @ sae(丛磊)新浪云计算公开课第一期:Let’s run @ sae(丛磊)
新浪云计算公开课第一期:Let’s run @ sae(丛磊)
 
http flood and mobile app
http flood and mobile apphttp flood and mobile app
http flood and mobile app
 
前端性能测试
前端性能测试前端性能测试
前端性能测试
 
Nodejs & NAE
Nodejs & NAENodejs & NAE
Nodejs & NAE
 

高德地图M站性能优化