狠狠撸

狠狠撸Share a Scribd company logo
Measuring?Web Performance
自己満足で終わらないためのパフォーマンス計測




     Internet Business Headquarters
     Web developer Koji Ishimoto
     2012.06.30 @CSS Nite LP23
t32k.me
2012.06.01
  Joined!
@cssradar   @hiloki
Agenda
I.   なぜ計測しなければならないのか

II. ページが表示されるまでの仕組み

III. 計測ツールの紹介

IV. まとめとこれからのこと
I. なぜ計測しなければならないのか?




                      Why?
Too Many Best Practices
Exceptional Performance - Yahoo! Developer Network
35
Exceptional Performance - Yahoo! Developer Network
35
Exceptional Performance - Yahoo! Developer Network




                                           Web Performance Best Practices - Google Developers
35
Exceptional Performance - Yahoo! Developer Network
                                                        31
                                           Web Performance Best Practices - Google Developers
Measuring Web Performance - 自己満足で終わらないためのパフォーマンス計測 -
80:20
80:20
Designer?
高速サイトを実現する14のルール

1:HTTPリクエストを減らす           8:JSとCSSは外部ファイル化する

2:CDNを使う                  9:DNSルックアップを減らす

3:Expiresヘッダを設定する         10:JavaScriptを縮小化する

4:コンポーネントをgzipする          11:リダイレクトを避ける

5:スタイルシートは先頭に置く           12:スクリプトを重複させない

6:スクリプトは最後に置く             13:ETagの設定を変更する

7:CSS expressionの使用を控える   14:Ajaxをキャッシュ可能にする
Case: Web Designer


制作サイト: 企業サイト(ドキュメントページ)


 JSの使用: jQueryプラグインを少々


カバー範囲: ドメインの取得からSEO
Make Fewer HTTP Requests

                          Use a Content Delivery Network
Effective


                   Add Expires or Cache-Control Header

               Gzip Components

                                                                              Put Stylesheets at Top

                                                                          Put Scripts at Bottom

                                                                              Avoid CSS Expressions
                                                                     Make JavaScript and CSS External
                                                      Reduce DNS Lookups

                                              Minify JavaScript and CSS

                    Avoid Redirects
Ineffective




                                                                             Remove Duplicate Scripts

                 Con?gure ETags

              Make Ajax Cacheable




              Difficult                                                          Easy
                                           Case: Web Designer
Make Fewer HTTP Requests

                          Use a Content Delivery Network
Effective


                   Add Expires or Cache-Control Header

               Gzip Components

                                                                              Put Stylesheets at Top

                                                                          Put Scripts at Bottom

                                                                              Avoid CSS Expressions
                                                                     Make JavaScript and CSS External
                                                      Reduce DNS Lookups

                                              Minify JavaScript and CSS

                    Avoid Redirects
Ineffective




                                                                             Remove Duplicate Scripts

                 Con?gure ETags

              Make Ajax Cacheable




              Difficult                                                          Easy
                                           Case: Web Designer
Make Fewer HTTP Requests

                          Use a Content Delivery Network
Effective


                   Add Expires or Cache-Control Header

               Gzip Components

                                                                              Put Stylesheets at Top

                                                                          Put Scripts at Bottom

                                                                              Avoid CSS Expressions
                                                                     Make JavaScript and CSS External
                                                      Reduce DNS Lookups

                                              Minify JavaScript and CSS

                    Avoid Redirects
Ineffective




                                                                             Remove Duplicate Scripts

                 Con?gure ETags

              Make Ajax Cacheable




              Difficult                                                          Easy
                                           Case: Web Designer
CSSセレクタの最適化
 Right to Left
2009
Performance Impact of CSS
        Selectors
    http://www.stevesouders.com/blog/2009/03/10/performance-impact-of-css-selectors/
Measuring Web Performance - 自己満足で終わらないためのパフォーマンス計測 -
-20ms
2011
CSS Selector Performance has
  changed! (For the better)
     http://calendar.perfplanet.com/2011/css-selector-performance-has-changed-for-the-better/
Optimizing CSS selector matching (WebKit)

- Style Sharing      - Ancestor Filters
- Rule Hashes        - Fast Path
-5ms
If you aren't getting 90+ Page
Speed scores, it's way too early
to be thinking about selector
optimization.
               * { box-sizing: border-box } FTW ? Paul Irish
Measuring Web Performance - 自己満足で終わらないためのパフォーマンス計測 -
费用対効果を知る
II. ページが表示されるまでの仕組み




         Life of Web Page
Life of Web Page

Request           Onload                          Request

                             User’s Interaction


      HTML Sent      Page Complete
Life of Web Page

Request           Onload                          Request

                             User’s Interaction


      HTML Sent      Page Complete
}
Performance Timing

Prompt                          App
  for          Redirect                   DNS         TCP
unload                         cache

               Unload




         Request        Response         Processing          Onload


                                                      Rendering
Performance Timing

Prompt                          App
  for          Redirect                   DNS         TCP
unload                         cache

               Unload




         Request        Response         Processing          Onload


                                                      Rendering

                                        }
Rendering Flow (WebKit)

                         Layout

tag     DOM Tree

                       Render Tree   Paint!

style   Style Struct
How Browsers Work: Behind the scenes of modern web browsers - HTML5 Rocks
              邦訳:http://shanon-tech.blogspot.jp/2011/09/web.html
Measuring Web Performance - 自己満足で終わらないためのパフォーマンス計測 -
俯瞰的视点を持つ
III. どこを計測するのか?計測手段




             Measure Tools
I. 評価?アドバイス系

II. ASP系

III. デベロッパーツール系

IV. スポット計測系
I. 評価?アドバイス系
YSlow




ティア
YSlow
PageSpeed Insights
PageSpeed Insights
YSlow / PageSpeed Insights

- ビギナー向け
- 一番最初に使用すべきツール
- 優先度の高いものから対応
II. ASP系
WebPagetest
WebPagetest
Mobitest
Mobitest
Google Analytics
Navigation Timing API
1: navigationStart        11: secureConnectionStart
2: unloadEventStart       12: requestStart
3: unloadEventEnd         13: responseStart
4: redirectStart          14: responseEnd
5: redirectEnd            15: domLoading
6: fetchStart             16: domInteractive
7: domainLookupStart      17: domContentLoadedEventStart
8: domainLookupEnd        18: domContentLoadedEventEnd
9: connectStart           19: domComplete
10: connectEnd            20: loadEventStart
                          21: loadEventEnd
WebPagetest / Mobitest / GA

- 無料でありながら高機能
- ウォーターフォールチャートの確認
- ユーザーに近い読み込み時間の確認
III. デベロッパーツール系
Developer Tool
Firebug
Developer Tool / Firebug

- より詳細な分析に利用
- Try&Errorの繰り返しに便利
- 要:結果から改善策を読み取る力
IV. スポット計測系
jsPerf
CSS Stress Test
jsPerf / CSS Stress Test

- 最初から使わない(考えない)
- サイト制作に合わせて利用
Measuring Social Interaction
  with Google Analytics
Social Action
Cost: 0.8~1.0sec
Social Action: 0.01~0.2%
Measuring Web Performance - 自己満足で終わらないためのパフォーマンス計測 -
Measuring Web Performance - 自己満足で終わらないためのパフォーマンス計測 -
Measuring Web Performance - 自己満足で終わらないためのパフォーマンス計測 -
Remove JavaScript Files
-1000ms
Measuring Web Performance - 自己満足で終わらないためのパフォーマンス計測 -
計測 - 分析 - 最適化
IV. まとめとこれからのこと




                  Conclusion
Network > > CPU
         >
今後10年間でインターネットの帯域幅速度は
57倍になると思われているが、コンピューター
の処理能力は100倍以上になるだろう。
         モバイルサイト vs. アプリ: 来るべき戦略の転換 – U-Site
Measuring Web Performance - 自己満足で終わらないためのパフォーマンス計測 -
Minimize HTTP Requests! Requests 30 vs 1 (CSS Sprite)
Shut the f**k up and
 write some code.
Shut the f**k up and
reduce some HTTP request.
Thank you!
Photo Credit
-   http://www.?ickr.com/photos/hamed/1552383685/

-   http://www.?ickr.com/photos/bradhoc/7343762168/

-   http://www.?ickr.com/photos/chaparralbrad/2414205811/

-   http://www.?ickr.com/photos/sonictk/371595048/

More Related Content

Measuring Web Performance - 自己満足で終わらないためのパフォーマンス計測 -