measuring web performance - 自己満足で終わらないためのパフォーマンス計測 -

Post on 27-Jan-2015

107 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

世の中にはさまざまなパフォーマンスTipsがあり対応したものの、本当にこれって効果でているの?とは思ったことはないでしょうか。たぶん速くなっただろう……で終わってないでしょうか。 本セッションでは、まずブラウザにページが表示されるまでの仕組みを学びつつ、どこにコストをかければいいのか理解します。各段階別のツールでちゃんと効果測定すれば自己満足で終わらない仕事が可能です!

TRANSCRIPT

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

Measuring Web Performance

Internet Business Headquarters Web developer Koji Ishimoto2012.06.30 @CSS Nite LP23

2012.06.01Joined!

AgendaI. なぜ計測しなければならないのか

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

III. 計測ツールの紹介

IV. まとめとこれからのこと

I. なぜ計測しなければならないのか?

Why?

Too Many Best Practices

Exceptional Performance - Yahoo! Developer Network

Exceptional Performance - Yahoo! Developer Network

35

Exceptional Performance - Yahoo! Developer Network

35

Web Performance Best Practices - Google Developers

Exceptional Performance - Yahoo! Developer Network

35

Web Performance Best Practices - Google Developers

31

80:20

80:20Designer?

高速サイトを実現する14のルール

1:HTTPリクエストを減らす

2:CDNを使う

3:Expiresヘッダを設定する

4:コンポーネントをgzipする

5:スタイルシートは先頭に置く

6:スクリプトは最後に置く

7:CSS expressionの使用を控える

8:JSとCSSは外部ファイル化する

9:DNSルックアップを減らす

10:JavaScriptを縮小化する

11:リダイレクトを避ける

12:スクリプトを重複させない

13:ETagの設定を変更する

14:Ajaxをキャッシュ可能にする

Case: Web Designer

制作サイト:

JSの使用:

カバー範囲:

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

jQueryプラグインを少々

ドメインの取得からSEO

Effe

ctive

EasyDifficult

Inef

fect

ive

Put Stylesheets at Top

Make Fewer HTTP Requests

Put Scripts at Bottom

Avoid CSS Expressions

Use a Content Delivery Network

Add Expires or Cache-Control Header

Gzip Components

Make JavaScript and CSS External

Reduce DNS Lookups

Minify JavaScript and CSS

Avoid Redirects

Configure ETags

Make Ajax Cacheable

Remove Duplicate Scripts

Case: Web Designer

Effe

ctive

EasyDifficult

Inef

fect

ive

Put Stylesheets at Top

Make Fewer HTTP Requests

Put Scripts at Bottom

Avoid CSS Expressions

Use a Content Delivery Network

Add Expires or Cache-Control Header

Gzip Components

Make JavaScript and CSS External

Reduce DNS Lookups

Minify JavaScript and CSS

Avoid Redirects

Configure ETags

Make Ajax Cacheable

Remove Duplicate Scripts

Case: Web Designer

Effe

ctive

EasyDifficult

Inef

fect

ive

Put Stylesheets at Top

Make Fewer HTTP Requests

Put Scripts at Bottom

Avoid CSS Expressions

Use a Content Delivery Network

Add Expires or Cache-Control Header

Gzip Components

Make JavaScript and CSS External

Reduce DNS Lookups

Minify JavaScript and CSS

Avoid Redirects

Configure ETags

Make Ajax Cacheable

Remove Duplicate Scripts

Case: Web Designer

CSSセレクタの最適化Right to Left

Performance Impact of CSS Selectors

2009

http://www.stevesouders.com/blog/2009/03/10/performance-impact-of-css-selectors/

-20ms

- Style Sharing

- Rule Hashes

- Ancestor Filters

- Fast Path

Optimizing CSS selector matching (WebKit)

-5ms

* { box-sizing: border-box } FTW « Paul Irish

If you aren't getting 90+ Page Speed scores, it's way too early to be thinking about selector optimization.

費用対効果を知る

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

Life of Web Page

Request

HTML Sent

Onload

Page Complete

Request

User’s Interaction

Life of Web Page

Request

HTML Sent

Onload

Page Complete

Request

User’s Interaction}

Life of Web Page

Promptfor

unloadRedirect

Appcache

DNS TCP

Request Response Processing Onload

Unload

Rendering

Performance Timing

Promptfor

unloadRedirect

Appcache

DNS TCP

Request Response Processing Onload

Unload

Rendering}Performance Timing

DOM Tree

Style Struct

Render Tree Paint!

tag

style

Layout

Rendering Flow (WebKit)

俯瞰的視点を持つ

III. どこを計測するのか?計測手段

Measure Tools

I. 評価・アドバイス系

II. ASP系

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

IV.スポット計測系

I. 評価・アドバイス系

YSlow

PageSpeed Insights

- ビギナー向け- 一番最初に使用すべきツール- 優先度の高いものから対応

YSlow / PageSpeed Insights

II. ASP系

WebPagetest

Mobitest

1: navigationStart

2: unloadEventStart

3: unloadEventEnd

4: redirectStart

5: redirectEnd

6: fetchStart

7: domainLookupStart

8: domainLookupEnd

9: connectStart

10: connectEnd

11: secureConnectionStart

12: requestStart

13: responseStart

14: responseEnd

15: domLoading

16: domInteractive

17: domContentLoadedEventStart

18: domContentLoadedEventEnd

19: domComplete

20: loadEventStart

21: loadEventEnd

Navigation Timing API

- 無料でありながら高機能- ウォーターフォールチャートの確認- ユーザーに近い読み込み時間の確認

WebPagetest / Mobitest / GA

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

Developer Tool

- より詳細な分析に利用- Try&Errorの繰り返しに便利- 要:結果から改善策を読み取る力

Developer Tool / Firebug

IV.スポット計測系

- 最初から使わない(考えない)- サイト制作に合わせて利用

jsPerf / CSS Stress Test

Social Action

Cost:Social Action:

0.8~1.0sec0.01~0.2%

Remove JavaScript Files

-1000ms

計測 - 分析 - 最適化

IV. まとめとこれからのこと

Conclusion

Network >>> CPU

今後10年間でインターネットの帯域幅速度は

57倍になると思われているが、コンピューターの処理能力は100倍以上になるだろう。

モバイルサイト vs. アプリ: 来るべき戦略の転換 – U-Site

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.

top related