5.3 スロットリング

Network Throttling

スロットリングは、低速なネットワーク環境をシミュレートする機能。モバイル回線や不安定な接続状況でのユーザー体験をテストできる。開発マシンの高速回線では見逃しがちな問題を発見するのに役立つ。

スロットリングの概要

なぜスロットリングが必要か

  • 開発環境は高速な有線接続が多い
  • 実際のユーザーはモバイル回線や低速Wi-Fiを使用
  • 遅いネットワークでの体験を事前に確認
  • パフォーマンス最適化の効果を実感

シミュレートできる要素

要素 説明
ダウンロード速度 サーバーからの受信速度を制限
アップロード速度 サーバーへの送信速度を制限
レイテンシ(遅延) リクエスト/レスポンスの往復遅延を追加

スロットリングの使い方

Networkパネルから設定

操作手順

  1. Networkパネルを開く
  2. ツールバーの「No throttling」ドロップダウンをクリック
  3. プリセットを選択(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 -
Fast 3G vs Slow 3G Fast 3Gは比較的良好なモバイル環境、Slow 3Gは電波の弱い場所や混雑時を想定。実際のユーザー体験に近いのはSlow 3Gの方が多い。

カスタムプロファイル

プリセット以外の条件でテストしたい場合、カスタムプロファイルを作成できる。

作成方法

操作手順

  1. ドロップダウンから「Add...」を選択
  2. Settings → Throttlingが開く
  3. 「Add custom profile...」をクリック
  4. プロファイル名を入力
  5. Download、Upload、Latencyを設定
  6. 「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」チェックボックス

テストシナリオ

  • オフライン時のフォールバックページ表示
  • キャッシュからのリソース提供
  • オフライン時のエラーハンドリング
  • 接続復帰時の再同期
Service Workerとの連携 オフラインモードでページをリロードし、Service Workerがキャッシュからリソースを提供できるか確認する。Networkパネルの「Size」列が「(ServiceWorker)」と表示されれば成功。

CPU スロットリング

Performanceパネルでは、CPUの処理速度も制限できる。低スペックデバイスをシミュレート。

設定方法

操作手順

  1. Performanceパネルを開く
  2. 歯車アイコンをクリック
  3. 「CPU」ドロップダウンから選択

プリセット

設定 説明
No throttling 制限なし
4x slowdown CPUを1/4の速度に
6x slowdown CPUを1/6の速度に
モバイルデバイスのシミュレート 一般的なモバイルデバイスは、開発マシンの1/4〜1/6程度の処理能力。4x〜6x slowdownで近い条件をシミュレートできる。

複合テスト

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」に戻す。スロットリングが有効なまま開発を続けると、パフォーマンスの判断を誤る可能性がある。

注意 スロットリングはDevToolsが開いているタブにのみ適用される。他のタブやアプリケーションには影響しない。
参考文献
[1] Simulate slow network connections - Chrome DevTools. developer.chrome.com
[2] Simulate mobile devices with Device Mode - Chrome DevTools. developer.chrome.com