5.3 スロットリング
Network Throttling
スロットリングの概要
なぜスロットリングが必要か
- 開発環境は高速な有線接続が多い
- 実際のユーザーはモバイル回線や低速Wi-Fiを使用
- 遅いネットワークでの体験を事前に確認
- パフォーマンス最適化の効果を実感
シミュレートできる要素
| 要素 | 説明 |
|---|---|
| ダウンロード速度 | サーバーからの受信速度を制限 |
| アップロード速度 | サーバーへの送信速度を制限 |
| レイテンシ(遅延) | リクエスト/レスポンスの往復遅延を追加 |
スロットリングの使い方
Networkパネルから設定
操作手順
- Networkパネルを開く
- ツールバーの「No throttling」ドロップダウンをクリック
- プリセットを選択(Fast 3G、Slow 3G、Offline等)
Performanceパネルから設定
Performanceパネルの設定(歯車アイコン)からもNetwork throttlingを設定可能。パフォーマンス計測と組み合わせて使用する場合に便利。
Command Menuから設定
Ctrl+Shift+P → 「throttle」で検索 → プリセットを選択
プリセット一覧
DevToolsには一般的なネットワーク環境のプリセットが用意されている。
| プリセット | ダウンロード | アップロード | レイテンシ |
|---|---|---|---|
| No throttling | 制限なし | 制限なし | 0ms |
| Fast 3G | 1.5 Mbps | 750 Kbps | 563ms |
| Slow 3G | 500 Kbps | 500 Kbps | 2000ms |
| Offline | 0 | 0 | - |
カスタムプロファイル
プリセット以外の条件でテストしたい場合、カスタムプロファイルを作成できる。
作成方法
操作手順
- ドロップダウンから「Add...」を選択
- Settings → Throttlingが開く
- 「Add custom profile...」をクリック
- プロファイル名を入力
- Download、Upload、Latencyを設定
- 「Add」をクリック
設定値の目安
| 環境 | ダウンロード | アップロード | レイテンシ |
|---|---|---|---|
| 4G LTE(良好) | 12 Mbps | 6 Mbps | 50ms |
| 4G LTE(普通) | 4 Mbps | 2 Mbps | 100ms |
| 公衆Wi-Fi | 2 Mbps | 1 Mbps | 150ms |
| 新興国モバイル | 400 Kbps | 400 Kbps | 400ms |
プロファイルの管理
Settings → Throttling で、作成したプロファイルの編集・削除が可能。
オフラインモード
ネットワーク接続を完全に遮断するモード。Service Workerのオフライン対応をテストする際に使用。
設定方法
- Networkパネル: ドロップダウンから「Offline」を選択
- Applicationパネル: Service Workers → 「Offline」チェックボックス
テストシナリオ
- オフライン時のフォールバックページ表示
- キャッシュからのリソース提供
- オフライン時のエラーハンドリング
- 接続復帰時の再同期
CPU スロットリング
Performanceパネルでは、CPUの処理速度も制限できる。低スペックデバイスをシミュレート。
設定方法
操作手順
- Performanceパネルを開く
- 歯車アイコンをクリック
- 「CPU」ドロップダウンから選択
プリセット
| 設定 | 説明 |
|---|---|
| No throttling | 制限なし |
| 4x slowdown | CPUを1/4の速度に |
| 6x slowdown | CPUを1/6の速度に |
複合テスト
NetworkとCPUの両方を制限することで、より現実的なモバイル環境をシミュレートできる。
推奨テストパターン
| シナリオ | Network | CPU |
|---|---|---|
| ハイエンドモバイル | Fast 3G | 4x slowdown |
| ミッドレンジモバイル | Slow 3G | 4x slowdown |
| ローエンドモバイル | Slow 3G | 6x slowdown |
| 新興国ユーザー | カスタム(400Kbps) | 6x slowdown |
Device Modeとの連携
Device Mode(レスポンシブデザインモード)と組み合わせると、モバイルデバイスの総合的なシミュレートが可能。
Device Modeを開く
Ctrl+Shift+M、またはツールバーのデバイスアイコン
Device Modeでのスロットリング
Device Modeのツールバーにもスロットリングのドロップダウンがある。デバイスプリセット(iPhone、Pixel等)を選択すると、画面サイズと共にネットワーク条件も設定される場合がある。
テスト項目
- 画面サイズ: レスポンシブレイアウト
- タッチ操作: クリック→タップの変換
- ネットワーク: 低速回線
- CPU: 低スペックデバイス
活用シーン
ローディング表示の確認
高速回線では一瞬で完了する読み込みも、低速回線では数秒かかる。スピナーやスケルトンスクリーンが適切に表示されるか確認。
タイムアウト処理のテスト
Slow 3Gでリクエストを発行し、タイムアウト処理が正しく動作するか確認。
画像の遅延読み込み
低速回線で画像の遅延読み込み(lazy loading)が正しく機能し、ユーザー体験を向上させているか確認。
プログレッシブエンハンスメント
JavaScript読み込み前のHTML/CSSのみの状態でも、基本的なコンテンツが表示されるか確認。
バンドルサイズの影響
JavaScriptバンドルが大きいと、低速回線では読み込みに時間がかかる。コード分割の効果を確認。
テストのTips
Disable cacheと併用
「Disable cache」を有効にして、初回訪問時の体験をテスト。キャッシュがあると本来の読み込み時間が分からない。
複数回テスト
ネットワークは変動するため、複数回テストして平均的な体験を把握。
実機でも確認
スロットリングはシミュレーション。最終確認は実際のモバイルデバイスと実際のネットワーク環境で行う。
スロットリング解除を忘れずに
テスト後は「No throttling」に戻す。スロットリングが有効なまま開発を続けると、パフォーマンスの判断を誤る可能性がある。
[1] Simulate slow network connections - Chrome DevTools. developer.chrome.com
[2] Simulate mobile devices with Device Mode - Chrome DevTools. developer.chrome.com