-
Notifications
You must be signed in to change notification settings - Fork 0
MS_BrowserMemoryLeak
nishi_74322014 edited this page Aug 3, 2026
·
1 revision
- 戻る(メモリ・リーク、IE、WWWブラウザのいろいろ(
MS_WebBrowsers.md))- VC++のメモリ・リーク
- COMのメモリ・リーク
- WWWブラウザのメモリ・リーク
WWWブラウザのメモリ・リークの調査。
- ブラウザ・タイプ別。
- 基本的に、F12 で開発者ツール(デベロッパー・ツール)が開き、
そこで、WWWブラウザのメモリ・リークの調査が可能。
- 開発者ツールの Memory(メモリ)パネルでヒープ スナップショットを取得。
- リークを疑う操作(画面遷移・開閉など)を数回繰り返す。
- もう一度スナップショットを取得し、2つを比較して増え続けているオブジェクトを探す。
- そのオブジェクトの保持パス(Retainers / Dominators) を辿り、参照を握っている箇所を特定する。
| 原因 | 内容 |
|---|---|
| イベント リスナーの解除漏れ |
addEventListener したまま DOM を破棄。 |
| detached DOM | DOM から外したノードを JS 変数が掴んだまま。 |
| グローバル変数・キャッシュ | 追加しっぱなしの配列や Map。 |
| タイマー |
setInterval の解除漏れ。 |
| クロージャ | 不要になった大きなオブジェクトを閉じ込めている。 |
※ 対策としては、解除処理をコンポーネントの破棄時に必ず走らせること、
キャッシュに WeakMap / WeakRef を使うことなど。
※ 旧 IE では、DOM(COM)と JScript エンジンの間の循環参照が
GC で回収されないという固有のリークがあった(IE6〜8)。
IE11 デスクトップ アプリは 2022年に提供終了。
Chromium ベースのため、開発者ツールの操作は共通。
※ 「Performance monitor」で JS ヒープ サイズ・DOM ノード数・
イベント リスナー数をリアルタイムに監視でき、
操作を繰り返して右肩上がりになるかを見るのが手早い。
※ about:memory で、より詳細なメモリ内訳レポートを取得できる。
Tags: 障害対応, 性能, デバッグ
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。