狠狠撸

狠狠撸Share a Scribd company logo
モバイル时代の奥别产パフォーマンス罢颈辫蝉
2014/8/22 ?
第2回 ?HTML5minutes! ?
Toru ?Yoshikawa ?(@yoshikawa_?t)
Who?
html5j ?代表/html5jビギナー部 ?(副部??長) ?
Google ?Developer ?Experts ?(Chrome) ?
HTML5 ?Experts.jp ?エキスパート ?
Web先端技術味?見見部 ? (顧問)/?日本jQuery ?
Mobileユーザー会 ?(管理理?人)/Sublime ?
Text ?2 ?Japan ?Users ?Group ?(管理理?人)など
など ?
Blog: ?http://d.hatena.ne.jp/pikotea/
吉川 ?徹 ?/ ?Toru ?Yoshikawa ?
@yoshikawa_?t
PR: ?HTML教科書 ?HTML5
レベル1 ?書きました
「HTML教科書 ?HTML5レベル1」9/17発売! ?
LPIの資格試験「HTML5プロフェッショナル試験 ?レ
ベル1」対策本です。 ?
執筆陣: ?吉川 ?徹、秋葉葉 ?秀樹、窪?田 ?則?子、?白?石 ?俊平 ?
http://www.amazon.co.jp/dp/4798135836/
时代はモバイル
モバイルの現状
2014年年の端末出荷台数は当然ながらPCに?比べて
モバイル(スマフォ+タブレット)が8倍
(Gatner) ?
2017年年には、タブレット単体でPCの出荷台数を
抜く(Gatner) ?
インターネットトラフィックシェアは、2014年年7
?月を堺に逆転(Intelligent ?笔辞蝉颈迟颈辞苍颈苍驳)
http://www.intelligentpositioning.com/blog/2014/01/mobile-and-tablet-traffic-set-to-overtake-desktop-by-
mid-2014/
ネイティブとHTML5
Facebookのザッカーバーグが「HTML5は時期尚早
だった」(http://www.publickey1.jp/blog/12/html5html5.html) ?
サイバーエージェントがネイティブアプリに注?力力
(http://jp.techcrunch.com/2014/07/24/jp20140724cyberagent/) ?
機能的にはアプリのほとんどは、HTML5での実装
が可能なものにも関わらずネイティブアプリが強い ?
モバイルアプリの隆盛とハイブリッドアプリの登場
Webアプリ(HTML5)に ?
?足りないものはなにか?
mobile vision
モバイル时代の奥别产パフォーマンス罢颈辫蝉
API
モバイルアプリ(Andorid、US)のうち、61% ?が
APIが?足りないためにネイティブアプリを選択して
いる ?
しかし、Power ?Management ?APIとWi? ?APIが実装
されていれば、そのうちの ?21% ?はWebアプリを選
択する ?
ちょっとした?一部機能でAPIが?足りない状況
モバイル时代の奥别产パフォーマンス罢颈辫蝉
Tools、Education
スキルセットがない?人が実装するのは難しい(ス
キルセットがある?人でも簡単にはできない) ?
まだまだHTML5を使いこなしている?人が少ない ?
適当に作っただけでは、?十分な品質のアプリが作
れない
Performance
既にデスクトップでは、?十分なパフォーマンスがある ?
モバイルはスマートフォンの1/5の性能である ?
ハードとブラウザの進化によって?日々パフォーマンス
は向上しているものの、まだまだ過渡期できちんとし
た作り込みが必要 ?
パフォーマンスを向上して、ネイティブアプリに近づ
ける努?力力が必要
Google ?I/O ?2014の ?
”Mobile ?Web ?performance ?auditing”を ?
中?心に参考になるTipsを紹介 ?
!
同じセッションを題材にしたHTML5 ?Expert.jpの記事 ?
http://html5experts.jp/furoshiki/8582/
?パフォーマンスチューニング ?
2つの視点
Page ?Load ?… ?ページのローディング、表?示まで
のチューニング ?
Runtime ?… ?ページ中の動作を60fpsで実現する
ためのチューニング
Page ?Load
リソースの最適化 ?
リクエスト数を抑える ?
リダイレクトを避ける ?
レンダリングの優先度度
リソースの最適化
Webサイトのサイズのうち63%は画像 ?
画像を?小さくすれば多くの通信容量量を削減することができる ?
貧弱なモバイル回線ではとても重要 ?
ツールを利利?用する ?
JPEG: ?jpegtran、jpegoptim ?
PNG: ?OptiPNG、PNGOUT ?
(私はMacでImageAlpha、ImageOptimを使ってます) ?
その他、JS、CSSファイルのminifyなど
リクエスト数を抑える
モバイル回線ではHTTPリクエストは?非常に?高コスト ?
電波状況にもよるが、1リクエスト増えたら200ms?~
1000ms増えてもおかしくない ?
JS、CSSの結合など ?
画像の結合(CSS ?Sprite) ?
JS、CSS、画像の埋め込み(data ?URL)など
DNSプリフェッチ
!
事前にDNS ?Lookupを済ませてキャッシュしておく ?
別ドメインへのアクセスがある場合は?高速化できる
かも(SNSボタン等)
<link rel="dnp-prefetch" href="example.com">
リダイレクトを避ける
モバイルサイトへのリダイレクトなどを避ける ?
同?一のURLで複数のUAに対応したり、レスポンシブに
する
レンダリングの優先度度
レンダリングをブロックするリソースを取り除く ?
ファーストビューのリソースを再優先に ?
画像の遅延読込みなど(Lazy ?Loadなど) ?
スクロールしなければ表?示されない領領域は後回しに ?
プログレッシブJPEG、インターレースPNGを使う
Runtime
変形や透過処理理を抑える ?
requestAnimationFrameを使う ?
DOMアクセスの最適化 ?
メモリの最適化(JavaScript)
過度度な装飾は重い ?
border-‐??radius、box-‐??shadow、text-‐??shadow、*-‐??gradient
などなど ?
transformによる変形(移動はそうでもない)、opacityは
特に重い ?
とくにアニメーションする場合には注意が必要 ?
場合によっては画像を使うことも検討
変形や透過処理理を抑える
setIntervalやsetTimeoutでは、単に処理理をスタックさせ
るだけなので16msのリフレッシュレートに合わせて実?行行
させるには不不?十分 ?
?非対応ブラウザにはPoly?llもあるので、積極的に
requestAnimationFrameを使う
requestAnimationFrame
を使う
DOMアクセスの最適化
DOMプロパティを変数のように使わない ?
DOMプロパティへのアクセスはレイアウトの再計算など
が?走ることがあるため必要最?小限に(必要があれば
キャッシュするなど) ?
特に注意が必要なプロパティ ?
getComputedStyle()、o?set*系のプロパティ、
client*系のプロパティ、scroll*系のプロパティ
DOMアクセスの最適化
setInterval(function(){	
div.style.left = (div.offsetLeft + 1) + 'px'; 	
}, 1000/60);
var cache = div.offsetLeft;	
setInterval(function(){	
cache++;	
div.style.left = cache + 'px'; 	
}, 1000/60);	
毎回、レイアウトの再計算が発生して重い
キャッシュ化して高速に
メモリの最適化
GCが発?生しないようにメモリの使?用量量をコントロールする ?
最初に必要なメモリをすべて確保する、オブジェクトプール
を作る(オブジェクトの再利利?用)などの?方法がある ?
よくある誤解としては、GCはいったん発?生すると200msの
Stop ?the ?worldが発?生すると思われがちだが、最近ではイン
クリメンタルGCの採?用で、1度度の停?止は10ms程度度に収まっ
ている(その代わり何度度も発?生するので気にしなくて良良いと
いうわけではない)
PageSpeed ?Insight
http://developers.google.com/speed/pagespeed/insights/
モバイル时代の奥别产パフォーマンス罢颈辫蝉
Extra: ?Service ?Worker
オフラインWebアプリケーションのためのAppCache
に代わる仕様 ?
Webアプリのローカルプロキシとして、バックグラウ
ンドプロセスで動作する ?
個別ファイルごとにキャッシュするかどうかを
JavaScriptから制御できる ?
http://html5experts.jp/myakura/8365/
Appendix: ?Web ?Components
独?自の要素(例例えばUIパーツなど)を個別に作成、イ
ンポートできる仕様 ?
詳細は他のセッションで。 ?
将来的には、ツールでの活?用や、?高品質なコンポーネ
ントを再利利?用することによって全体的な品質の底上げ
が期待できる ?
http://html5experts.jp/1000ch/8906/
ネイティブとの差を埋めて ?
よりよいHTML5ライフを
Thank ?you!!
(@yoshikawa_?t)
Resources
HTML5 ?Experts.jp ?「Google ?I/O ?2014 ?特集」 ?
http://html5experts.jp/series/google-‐??
io-‐??2014-‐??2/ ?
http://www.visionmobile.com/blog/2013/12/
html5-‐??performance-‐??is-‐???ne-‐??what-‐??we-‐??are-‐??missing-‐??
is-‐??tools/ ?
https://www.google.com/events/io/schedule/
session/c8300366-‐??03ed-‐??
e311-‐??903f-‐??00155d5066d7 ?

More Related Content

モバイル时代の奥别产パフォーマンス罢颈辫蝉