Milten.ioMilten

メモリリーク

反復ヒープスナップショット分析によるメモリリーク検出

メリット

反復ヒープスナップショット比較
ツールはページ間を複数回ナビゲートし、反復間でヒープスナップショットを比較 — 一回限りのアロケーションではなく、本当のメモリ増加を確認します。
4つのカテゴリのリーク検出
リークしているヒープオブジェクト、増大するコレクション(Array、Map、Set)、蓄積されたイベントリスナー、ナビゲーション後もメモリに残る分離されたDOMノードを検出します。
バイトレベルのメモリデルタ追跡
各ページが反復ごとに何バイトリークしているかを正確に確認でき、各疑わしいオブジェクトのリテインサイズデルタとGCルートからの距離が表示されます。
マルチページ自動クロール
サイトのページを自動的にナビゲートし、各ページでリーク検出を実行 — 1つのルートだけでなく、ユーザージャーニー全体でリークを検出します。

使い方

ツール

スピードスキャナー
INPデバッガー
バック/フォワードキャッシュのテスト
メモリリーク
React Scan

FAQ

ツールはページを読み込み、ヒープスナップショットを取得し、別のページに移動して戻る操作を数回繰り返し、再度スナップショットを取得します。反復間で一貫して増加するオブジェクトがリークとしてフラグ付けされ、一回限りのアロケーションは除外されます。

分離されたDOMノードとは、ページから削除されたがJavaScriptの参照によってメモリに保持されているHTML要素です。シングルページアプリケーションにおけるメモリリークの一般的な原因です。

はい。ツールは反復間で各イベントリスナータイプの数を追跡します。リスナーの数がクリーンアップされずに増加する場合、特定のイベント名と影響を受けるDOMノードとともにフラグ付けされます。

もちろんです。SPAはページ全体のリロードなしにコンポーネントがマウント・アンマウントされるため、メモリリークの最も一般的な原因です。反復ナビゲーションパターンはこのシナリオのために特別に設計されています。

レポートにはオブジェクトタイプ、リテインサイズ、増加パターンが表示されます。一般的な修正方法には、useEffectのクリーンアップ関数でのイベントリスナーの削除、削除されたDOMノードへの参照のnull化、インターバルやタイムアウトのクリアが含まれます。
Cookieの使用について

当社は、最高の体験を提供するためにCookieを使用しています。Cookieの使用方法の詳細については、Cookieポリシーをご確認ください。