SlideShare a Scribd company logo
Submit Search
Upload
Login
Signup
Chrome DevTools.next
Report
yoshikawa_t
Follow
Dec. 21, 2012
•
0 likes
•
27,302 views
1
of
58
Chrome DevTools.next
Dec. 21, 2012
•
0 likes
•
27,302 views
Download Now
Download to read offline
Report
Technology
2012/12/21に行われたサイバーエージェント社内勉強での講演資料です。
yoshikawa_t
Follow
Recommended
Chrome Developer Toolsを使いこなそう!
yoshikawa_t
92.5K views
•
69 slides
Chrome Devtools for beginners (v1.1)
yoshikawa_t
7.2K views
•
43 slides
Chrome DevTools for beginners v1.2
yoshikawa_t
2.2K views
•
42 slides
困った時のDev toolsの使い方(初心者向け)
yoshikawa_t
2.8K views
•
15 slides
Chrome packaged appsをデバッグ
yoshikawa_t
2K views
•
12 slides
モバイル時代のWebパフォーマンス
yoshikawa_t
18.6K views
•
49 slides
More Related Content
What's hot
jQuery Mobile
yoshikawa_t
10.8K views
•
27 slides
Chrome Apps & Chromeウェブストア概要
yoshikawa_t
3.3K views
•
46 slides
Sencha touch vs j query mobile
yoshikawa_t
966 views
•
10 slides
HTML5 のお話
tomo_masakura
1.2K views
•
47 slides
今流行りのウェブアプリ開発環境Yeoman
tomo_masakura
2.8K views
•
99 slides
Concentrated HTML5 & Attractive HTML5
Sho Ito
3.3K views
•
111 slides
What's hot
(20)
jQuery Mobile
yoshikawa_t
•
10.8K views
Chrome Apps & Chromeウェブストア概要
yoshikawa_t
•
3.3K views
Sencha touch vs j query mobile
yoshikawa_t
•
966 views
HTML5 のお話
tomo_masakura
•
1.2K views
今流行りのウェブアプリ開発環境Yeoman
tomo_masakura
•
2.8K views
Concentrated HTML5 & Attractive HTML5
Sho Ito
•
3.3K views
【Webサイト構築】「HTML5とは何か?-企業のウエブ戦略の視点から-」(20120530メンバーズセミナー)
Members_corp
•
1.6K views
GUI Test is (not) necessary
Hiroshi Maekawa
•
4.1K views
絶対落ちないアプリの作り方
Fumihiko Shiroyama
•
52.8K views
「その他」のUI Framework 3選
Shumpei Shiraishi
•
6.5K views
FriendlyによるWindowsアプリテスト自動化手法 基礎技術編
Kenji Fukumoto
•
7.2K views
Chrome apps for mobile 概要
yoshikawa_t
•
2K views
#cmdevio2016 (レポート: F-2) iOS × Android 並行開発についてのトピック
cm_saito
•
9.1K views
Xcode と Android Studio の "押さえておきたい" 開発サポート機能
Keisuke Tanaka
•
8.3K views
Ble android
kudo1048
•
10.4K views
次世代Web業務アプリケーション
Fumio SAGAWA
•
12.8K views
Web制作者がandriodのcddを読んでみた version1.1
Masakazu Muraoka
•
676 views
モバイル時代のWebパフォーマンスTips
yoshikawa_t
•
4.6K views
JSオジサン openframeworks emscripten
minoru nakanou
•
5K views
Titanium
yono05
•
3K views
Similar to Chrome DevTools.next
Devtools.next
yoshikawa_t
1.9K views
•
71 slides
JavaScript And Keywords
uupaa
2.7K views
•
63 slides
2013 Ignite UI 最新情報 in 岡山
インフラジスティックス・ジャパン株式会社
1.3K views
•
40 slides
Chrome Apps 概要
yoshikawa_t
8.4K views
•
38 slides
jQuery と MVC で実践する標準志向 Web 開発
Akira Inoue
1.9K views
•
32 slides
2012 05-19第44回cocoa勉強会発表資料
OCHI Shuji
1.2K views
•
26 slides
Similar to Chrome DevTools.next
(20)
Devtools.next
yoshikawa_t
•
1.9K views
JavaScript And Keywords
uupaa
•
2.7K views
2013 Ignite UI 最新情報 in 岡山
インフラジスティックス・ジャパン株式会社
•
1.3K views
Chrome Apps 概要
yoshikawa_t
•
8.4K views
jQuery と MVC で実践する標準志向 Web 開発
Akira Inoue
•
1.9K views
2012 05-19第44回cocoa勉強会発表資料
OCHI Shuji
•
1.2K views
VSCodeで始めるAzure Static Web Apps開発
Yuta Matsumura
•
972 views
HTML5最新動向
Shumpei Shiraishi
•
10.8K views
Mvc conf session_5_isami
Hiroshi Okunushi
•
706 views
サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践
真吾 吉田
•
435 views
Firefox DevTools
dynamis
•
2.6K views
How to django at first
Maito Kuwahara
•
1.1K views
Microsoft Edge F12 開発者ツール
Yoshihisa Ozaki
•
18.9K views
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
ThinReports
•
6.5K views
Lotus Notes/Domino Application Development by XPages and Beyond
Atsushi Sato
•
1.4K views
Application Architecture for Enterprise Win Store Apps with DDD Pattern
Atsushi Kambara
•
3.1K views
Adobe Edge Inspectを利用してデバッグ
Keisuke Todoroki
•
8.2K views
Android Lecture #01 @PRO&BSC Inc.
Yuki Higuchi
•
1.1K views
CruiseControl.NET設置
Kuniaki Igarashi
•
1.5K views
[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践
de:code 2017
•
3.5K views
More from yoshikawa_t
Ionicで作るTechfeed
yoshikawa_t
1.7K views
•
18 slides
TechFeedというテクノロジーキュレーションサービスを作った話
yoshikawa_t
19.5K views
•
34 slides
Chrome DevTools Awesome 10 Features +1
yoshikawa_t
2.1K views
•
17 slides
これからのモバイルWebと最新動向
yoshikawa_t
5.8K views
•
50 slides
オフラインWebアプリの再到来で今、再び注目されるAPIの本命 ーJavaScript SQL-like database
yoshikawa_t
26.8K views
•
26 slides
jQuery Mobile is not dead!
yoshikawa_t
7.9K views
•
28 slides
More from yoshikawa_t
(16)
Ionicで作るTechfeed
yoshikawa_t
•
1.7K views
TechFeedというテクノロジーキュレーションサービスを作った話
yoshikawa_t
•
19.5K views
Chrome DevTools Awesome 10 Features +1
yoshikawa_t
•
2.1K views
これからのモバイルWebと最新動向
yoshikawa_t
•
5.8K views
オフラインWebアプリの再到来で今、再び注目されるAPIの本命 ーJavaScript SQL-like database
yoshikawa_t
•
26.8K views
jQuery Mobile is not dead!
yoshikawa_t
•
7.9K views
HTML5開発最前線
yoshikawa_t
•
2.2K views
Chrome Apps のデバイスAPI
yoshikawa_t
•
21.5K views
Html5概要 & デモ
yoshikawa_t
•
2.4K views
いまさら聞けないCSSレイアウト入門
yoshikawa_t
•
9.4K views
最近のブラウザ状況
yoshikawa_t
•
24.3K views
Let's begin WebRTC
yoshikawa_t
•
3.7K views
Chrome DevTools for beginners
yoshikawa_t
•
3.8K views
jQuery Mobile 1.3 最新情報
yoshikawa_t
•
14.4K views
jQuery Mobileカスタマイズ自由自在 v1.2
yoshikawa_t
•
4.5K views
jQuery Mobileバレしないモバイルサイトの作り方
yoshikawa_t
•
19.1K views
Recently uploaded
gtk4_gem_usage.pdf
ssuser0ef4681
11 views
•
6 slides
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
NTT DATA Technology & Innovation
24 views
•
21 slides
遠隔お酌IoTLT2309.pptx
Yoshiaki Ito
49 views
•
12 slides
IGDA Japan SIG Audio #20-1 室内・野外でのマイク収録と整音.pdf
IGDA Japan SIG-Audio
94 views
•
31 slides
テスト自動化.pdf
ssuserf8ea02
16 views
•
26 slides
20230912JSSST大会基調講演_丸山.pdf
Hiroshi Maruyama
163 views
•
58 slides
Recently uploaded
(9)
gtk4_gem_usage.pdf
ssuser0ef4681
•
11 views
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
NTT DATA Technology & Innovation
•
24 views
遠隔お酌IoTLT2309.pptx
Yoshiaki Ito
•
49 views
IGDA Japan SIG Audio #20-1 室内・野外でのマイク収録と整音.pdf
IGDA Japan SIG-Audio
•
94 views
テスト自動化.pdf
ssuserf8ea02
•
16 views
20230912JSSST大会基調講演_丸山.pdf
Hiroshi Maruyama
•
163 views
CCoE実践者コミュニティ#1_CCoEが進めるセキュリティカイゼンの旅.pptx
Tomoaki Tada
•
23 views
松下研究室紹介_関西大学高槻キャンパスオープンキャンパス
Matsushita Laboratory
•
25 views
20230921_IoTLT_vol103_kitazaki_v1.pdf
Ayachika Kitazaki
•
73 views
Chrome DevTools.next
1.
Chrome DevTools.next
2012/12/21 Cyber Agent Toru Yoshikawa ( @yoshikawa_̲t )
2.
Who? 吉川 徹 /
Toru Yoshikawa @yoshikawa_̲t C.A.Mobile Web先端技術フェロー Google API Expert ( Chrome ) コミュニティ活動 html5j.org/HTML5とか勉強会スタッフ ⽇日本jQuery Mobileユーザー会 管理理⼈人 Sublime Text 2 Japan Users Group 管理理⼈人 allWebクリエイター塾/jQuery Mobile担当講師 Blog: http://d.hatena.ne.jp/pikotea/
3.
著書 「HTML5ガイドブック 増補改訂版」(共著)
「jQuery Mobile パーフェクトガイド」 http://www.amazon.co.jp/dp/4844332937 http://www.amazon.co.jp/dp/484433266X
4.
Chrome Developer Toolsの概要は 既にこちらで解説していますので参考にしてください!
https://speakerdeck.com/t32k/improve-web-performance-with-chrome-dev-tools
5.
Agenda 1. ChromeでのWeb開発の基礎知識識 2. JavaScriptのデバッグ 3.
パフォーマンスの測定とチューニング 4. おまけ 1. 便便利利な拡張機能 2. Chrome Developer Toolsのカスタマイズ 5. まとめ
6.
ChromeでのWeb開発の
基礎知識識
7.
ブラウザの挙動 Safari、Android Browserと同じWebkitベースのブラウザの ため、ほぼ同様の動作をする JavaScriptエンジンが上記ブラウザとは違うので若若⼲干注意(互 換性の問題はほとんどなし)
Webkit > JavaScriptCore Chrome > V8 (Node.jsもV8を利利⽤用している) Firefox > SpiderMonkey JavaScript⾼高速化等のTipsは⼤大抵同様に効果がある
8.
特殊URL chrome:で始まるURLで設定やデバッグ⽤用の有⽤用な情報 を参照することができる chrome://about でURL⼀一覧を表⽰示
chrome://flags > 各種設定 chrome://appcache-‐‑‒internals > AppCacheの管理理 chrome://net-‐‑‒internals > ネットワーク情報 etc...
9.
Canary ビルド HTML5、Chrome Developer
Toolsの最新の機能が利利⽤用できる $_̲ 最後の評価結果の参照 (Console) Styled console log (Console) JPEGのデコード時間の表⽰示(Timeline) etc... プロファイルがStableと別になっているので、Stableと同時に 利利⽤用できる
10.
Canary ビルド
Chrome Developer Toolsの実験的機能の有効 chrome://flags Settings
11.
Canary ビルド Chrome Developer
Tools の最新情報 Peter Beverloo Web Inspector commits RSS feed
12.
JavaScriptのデバッグ
13.
Sourcesパネル ファイルツリー
サイドパネル ソースパネル
14.
Sourcesパネル
サイドパネルの 表⽰示・⾮非表⽰示 タブ ※「Content scripts」は Chrome Extensionsで利利⽤用して いるスクリプトこと サイドパネルの固定 ドメインごとの ファイルツリー
15.
Sourcesパネル ショートカット Command+O … ファイル選択 Command+Shift+O … 関数選択
Command+L … 指定⾏行行へ移動 Command+Option+F … ソースコードのGREP検索索
16.
JavaScriptのデバッグの基本 console.log! デバッガ
デバッグの開始 状態の監視 ステップ実⾏行行
17.
デバッグの開始 基本的な⽅方法 debugger句句 Breakpoints
18.
状態の監視 Watch Expressions Call Stack Scope
Variable Console
19.
ステップ実⾏行行 Pause/Continue (F8) Step over
(F10) Step into (F11) Step out (Shift+F11)
20.
いろいろなデバッグの開始⽅方法 条件付きBreakpoints DOM
Breakpoints XHR Breakpoints Event Listener Breakpoints Exception発⽣生 Workers
21.
条件付きBreakpoints ある式がtrueになった際にブレークする ⾏行行番号の右クリックから式を⼊入⼒力力
22.
DOM Breakpoints ある要素が変化した際にブレークする
属性の変化 ⼦子要素の追加 要素の削除 Elementsパネルから要素を右クリック Event Listener BreakpointsのDOM Mutationでも可能
23.
XHR Breakpoints XHR(Ajax)が投げられた際にブレークする リクエスト先のURLに含まれる⽂文字列列を指定する XHR Breakpointsパネルから+ボタン
24.
Event Listener Breakpoints
イベントが発⽣生した際にブレークする イベント Animation, Timer requestAnimationFrameやsetTimeoutなど Control, Device resizeやscroll, deviceorientationなど Clipboard Touch, Mouse, Keyboard DOM Mutation DOM操作
25.
Exception発⽣生 Exceptionが発⽣生した際にブレークする ステータスバーのポーズボタン ポーズボタンを1回クリックですべてのExceptionをブレーク ポーズボタンをもう1回クリックでcatchされていないExceptionを ブレーク
26.
Workers Web Workers開始時にブレークする 別のウィンドウされ、Web WorkerのJSがデバッ グできる
27.
その他のTips MinifyされたJavaScriptコードを整形できる そのままデバッグ可能
28.
その他のTips Consoleで利利⽤用可能なコマンド Firebug のコマンドラインは⼤大抵利利⽤用できる
http://ss-‐‑‒o.net/event/20120212/
29.
パフォーマンスの測定と
チューニング
30.
Timelineパネル
31.
Timelineパネル
記録ボタンを押して計測開始 記録ボタンをもう⼀一度度押して計測停⽌止 GCの実施 記録開始・終了了 15ms以下のレコードを⾮非表⽰示
32.
Timelineパネル レコードの種類 Loading …
読み込みなどのネットワークに関するレコード Scripting … イベントや関数呼び出しなどJSの実⾏行行に関するレコード Rendering … DOMの参照や変更更、レンダリングなどに関するレコード Painting … 画像の表⽰示やopacity、box-‐‑‒shadowなど画⾯面の表⽰示に関す るレコード
33.
Eventsの⾒見見⽅方 全体的に時間が掛かっているイベントの割合を⾒見見てチューニングすべき 項⽬目をチェックする Loading
> ネットワーク系のチューニング Scripting > JavaScriptのチューニング Rendering, Painting > DOM操作、描画系のチューニング 上部のタイムにある⻘青いラインは、DOMContentLoadedイベントを表す ⾚赤いラインは、loadイベントを表す
34.
Framesの⾒見見⽅方 スムーズにスクロール、アニメーションなどができているかどうかを 時間別に確認する 30FPSライン、60FPSラインを⾒見見て、ラインを越えているレコードが ないかどうかを確認する アニメーションは、30FPS(24FPSぐらいでも良良い) FPSゲームなどのシビアなものは60FPS
35.
チューニングすべき部分 ラインを越えて、突出しているレコードがチュー ニング対象 ドラッグで表⽰示範囲を調整できる
36.
レコードの詳細を確認する レコードをクリックすれば詳細を表⽰示可能 そのままでソースを表⽰示できるものもあれば、できないものもある
37.
Demo http://www.jankfree.com/jank-‐‑‒busters-‐‑‒io/examples/measuring-‐‑‒fps/smooth.html
38.
Demo http://www.jankfree.com/jank-‐‑‒busters-‐‑‒io/examples/sluggish-‐‑‒scroll/sluggish-‐‑‒scroll.html
39.
Memoryの⾒見見⽅方 メモリーリークをチェックすることができる メモリの使⽤用量量が定期的に下降降しているのは、GCが発⽣生して いるため GCは、⼀一定以上のメモリを消費するかアイドル時間に⾃自動的 に発⽣生する グラフが右肩上がりか、徐々に上がっていく場合は注意が必要
40.
Memory (Counters) の⾒見見⽅方
[計測時点 -‐‑‒ 現在] DOM Node CountやEvent Listener Countが増えて、減らな い場合はリークしている可能性がある iframeの内容もカウントされる 問題がありそうな場合には、Profilesで詳細を確認する
41.
Profiles CPU、CSS Selector、Heap Snapshotなどがあるが 今回は、Take
Heap Snapshotを簡単に解説します
42.
Profiles 記録⽅方法は、Timelineと同じ(Startボタンでも可能) スナップショットは、定点の記録なので⼀一瞬で終了了 CPU Profileでは、console.profile('プロファイル名')、 console.profileEnd()などのコードで正確な位置で記録す ることもできる
43.
Profiles (Heap Snapshots)
スナップショットを2つ記録して比較
44.
Profiles (Heap Snapshots)
差分からGCで回収されていないオブジェクトを⾒見見つける 項⽬目 # New > 新規オブジェクト # Deleted > 削除オブジェクト # Delta > 差分カウント Alloc. Size > 割り当てられたメモリサイズ Freed Size > 解放されたメモリサイズ Size Delta > 差分メモリサイズ
45.
HTML5を使って⼿手動で計測する Navigation Timing
API 各種イベントの処理理タイミングを取得する High Resolution Time ミリ秒以下の精度度で経過時間を計測する いずれも勧告済み
46.
Navigation Timing API //
サンプルコード console.log ( performance.timing.navigationStart )
47.
High Resolution Time performance.now()
// webkitNow() performance.timing.navigationStartからの経 過を時間をミリ秒以下の精度度で取得する
48.
おまけ
49.
便便利利な拡張機能 Page Speed Accessibility Developer
Tools jQuery Debugger DevTools autosave
50.
Page Speed Webサイトのスピード測定とサジェスト Page Speedタブが追加される
51.
Accessibility Developer Tools
Auditsでアクセシビリティに関するサジェスト
52.
jQuery Debugger ElementsパネルにjQuery DataとjQuery
Eventsパネルを追加 jQuery Selectorのinspectorが追加
53.
DevTools autosave DevToolsで修正したソースの内容をローカルに反映 アドレスごとに保存先を設定可能
54.
Chrome Developer Tools
のカスタマイズ https://github.com/frontdevDE/mnml-‐‑‒devtools-‐‑‒theme
55.
Chrome Developer Tools
のカスタマイズ Custom.cssに任意のスタイルを定義する Mac ~∼/Library/Application Support/Google/Chrome/Default/User StyleSheets/Custom.css Windows C:UsersYourUsernameAppDataLocalGoogleChromeUser DataDefaultUser StyleSheetsCustom.css ⼤大本のスタイルの確認(DevToolsをデバッグしても良良い) chrome-‐‑‒devtools://devtools/devTools.css devtools themeでぐぐれば⾊色々⾒見見つかります
56.
まとめ DevToolsは使いこなせば様々な分析ができる が、万能ではない DevToolsはあくまで情報を提供するもので、デ バッグやチューニングはトライ&エラーで モバイルはRemote Debugで実機チェックを DevToolsは常に進化しているので、必要な情報 があれば機能要望で追加されるかも?
57.
Thank you!! (
@yoshikawa_̲t )
58.
Resources Chrome Developers Live:
Chrome ( https://developers.google.com/ live/chrome/ ) Chrome Canary for Developers ( http://paulirish.com/2012/chrome-‐‑‒ canary-‐‑‒for-‐‑‒developers/ ) Improve web performance with chrome dev tools ( https:// speakerdeck.com/t32k/improve-‐‑‒web-‐‑‒performance-‐‑‒with-‐‑‒chrome-‐‑‒dev-‐‑‒ tools ) Jank Busters ( http://www.jankfree.com/jank-‐‑‒busters-‐‑‒io/index.html ) Google Chrome Developer Tools⼊入⾨門 inDevFestX Sapporo ( http://ss-‐‑‒ o.net/event/20120212/ )