Velocity@Beijing分享

       O'Reilly Velocity China 2010 ,在北京舉行了爲期兩天的大會,由 O'Reilly Taobao 聯合主辦,本次大會的主題是 ”Fast by default( 與生俱來的快 )” ,關注 web 性能(更多爲前端性能)和運維。

       自己有幸參加了首次在中國舉行的 Velocity 大會,自我總結有以下幾點:

1、  WPO web performance optimation

2、  運維(比如 taobao 如何管理 15,000 臺服務器)

3、  Automate

 

一些數據

Data@Taobao

    Alexa 排名 13

    10 億日 PV

    15,000 服務器

    帶寬 318G/410G

 

Data@Facebook

    +5 億的活躍用戶,超過一半每天訪問

    200 億日 PV

 

Performance 帶來的價值


 

WPO

    Web Performance Optimization

  Drives traffic

  Improves UX

  Increases revenue

  Reduces costs

 

 

How to WPO

Measure

    Yahoo!   Boomerang

    Stevesouders.org/episodes

    Jiffy

    WebPagetest.org

    ShowSlow.com

Profile

    Firebug

    Fiddle

    HttpWatch

    Speed Tracer

    Web Inspector

    Dyna Trace

Research

    Domain sharding

    Concatenation

    Sprites vs. MHTML

    WebP (A new image format for the Web)

    Prefetch

    SPDY, cwnd=10

Best practices

    High performance Even faster web sites

    High performance JS

    Code.google.com/speed

    Developer.yahoo.com/performance

    Stevesouders.com/blog

    Perfplanet.com

Evangelize (傳道)

    Velocity conference

    Workshops

    University

    Case studies

    blogs

Lint

    Page Speed from google

    YSlow

Automate

如何做到自動化的性能優化?參見下面

 

Facebook 3 個前端優化框架

    Quickling ajaxifies the whole web site

    PageCache cache user-visited page in browser

    BigPipe pipelines website

 

Quickling
remove redundant work via ajax


 如上圖,從首頁跳轉到圖片 detail 頁面,紅框標示的部分,它們是不變化的,因此可以不用每次頁面請求,都從服務器端生成這些內容,這也是 Quickling 的出發點(創新無處不在)

實現示意圖:


 

PageCache

Cache visited pages in client side.

如下圖,在用戶訪問 facebook 網站時,分析用戶行爲發現,一般情況下,用戶會多次訪問首頁,因此可以 cache 第一次訪問,後面的請求都從本地 cache 取數據即可。


PageCache 的實現有幾個難點:

     實時更新

     Cache 一致性

      至於作者如何解決的,還是詳細看他的 ppt 吧( http://velocity.oreilly.com.cn/ppts/ChanghaoJiang.pdf )。

 

BigPipe

Pipeline website


 如上圖,爲一般情況下,一個頁面從服務器生成,到網絡傳輸,最後到客戶端渲染的過程。可見它是一個串行的過程。

Facebook 的工程師,經過分析,發現一個頁面(如下圖),可以分成許多 Pagelets ,它們間相互影響不大,可以拆開來分別加載。


 

BigPipe 後,頁面加載的方式變爲如下方式,這樣可以有效改進用戶感知的頁面加載時間。


更多,也請查看作者的 ppt http://velocity.oreilly.com.cn/ppts/ChanghaoJiang.pdf

 

一些個人總結

    性能提升可以帶來流量、帶來收入

    前端性能優化很重要

    有專門的團隊、專門的人在做

    人是最不可靠的,靠系統,靠自動化

    持續的做,不是三天打漁,兩天曬網

 

 

資源連接

Boomerang Boomerang is a piece of JavaScript that you add to the bottom of your Web pages, where it measures page-load time, among other things, and beacons the results back to your server

http://developer.yahoo.com/blogs/ydn/posts/2010/06/performance_testing_with_boomerang/

Jiffy: http://code.google.com/p/jiffy-web/

SPDY http://www.guao.hk/tag/spdy

Page Speed: http://code.google.com/speed/page-speed/

WebP: http://code.google.com/speed/webp/

Speed Tracer: http://code.google.com/webtoolkit/speedtracer/

Web Inspector: http://trac.webkit.org/wiki/WebInspector

Dyna Trace: http://www.dynatrace.com

Velocity china pdf: http://velocity.oreilly.com.cn/index.php?func=slidesvideos

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章