- 変更前 → 変更後
- 846 → 1451
- 差分
- +605
- 差分 / イテレーション
- +121
メモリリークを検出
画面遷移を繰り返し、開始ページに戻った後も残るオブジェクトを調べます。ブラウザで観測されたメモリの蓄積を確認できます。
どのグループがイテレーション間で増加するかを確認
画面遷移と戻る操作のサンプルです。数値はレポートの説明用であり、サイトの検査結果ではありません。
ルート変更
/catalog → /product → /catalog × 5
移動は終わっても前のページの状態オブジェクトがメモリに残り、繰り返すたびに増えます。どの参照が保持しているか確認してください。
- 変更前 → 変更後
- 34 → 74
- 差分
- +40
- 差分 / イテレーション
- +8
- 変更前 → 変更後
- 41.2 → 54.7 MB
- 差分
- +13.5 MB
- 差分 / イテレーション
- +2.7 MB
レポートを説明するためのサンプルデータです。実際のページの結果は検査後に表示されます。
シナリオを繰り返し、パス間の差分をカウントします
ページ内のリンクを選択
スキャナーは表示されている内部リンクを最大3つ探します。各リンクへの移動と開始ページへの復帰を5回繰り返します。
メモリ使用量を比較
ウォームアップ後、移動を繰り返しても残るメモリを測定します。初回読み込みでは見えない蓄積を確認できます。
蓄積する対象を表示
レポートには増加するコレクション、イベントリスナー、DOMノード、オブジェクト型が表示されます。コレクションは情報が得られた場合、変更したコードの位置も示します。
メモリリークレポートに含まれる内容
チェックされたシナリオ
レポートにはURL、チェックされたユーザーパス、イテレーション数、リークフラグが保存されるため、検出結果を再現できます。
総メモリ増加量
同じ画面遷移で、全体の増加量と反復ごとの増加量を比較します。蓄積は保持されたオブジェクトを調べる手掛かりですが、意図したキャッシュやアプリケーションの状態もメモリーを使い続ける場合があります。
Array, Map, Set, Object
増加するコレクションは個別にリストされます:変更前と変更後のサイズ、差分、イテレーションごとの差分、コレクションが変更された場所のスタックトレース。
イベントリスナーとノード
レポートにはシナリオ前後のリスナー数、結果の差分、サブスクリプションが増加するリークしているリスナーノードが表示されます。
DOMノードの増加
レポートにはDOMノードの増加とリークしているノードの説明が表示され、デタッチされたDOMや繰り返されるインターフェース初期化を発見しやすくなります。
ヒープオブジェクト型
増加するオブジェクト型について、レポートにはカウント差分、サイズ差分、保持サイズ差分、イテレーションごとの値が含まれます。環境データが存在する場合、total、native、V8ヒープが個別に表示されます。
メモリリークに関するよくある質問
反復ごとの差分、増え続けるコレクション、リスナー、DOMノード、レポート後の対応についての簡潔な回答。