.NETのメモリリーク(意図しない保持)
業務上は不要になったオブジェクトが、staticフィールド・キャッシュ・イベント・Timer・DIのライフタイムなどから参照され続け、GCが回収できずに増え続ける状態。
この概念が関わる関係
- .NETのメモリリーク(意図しない保持)はdotnet-gcdumpで確認できます。
- .NETのメモリリーク(意図しない保持)はdotnet-dumpで確認できます。
- .NETのメモリリーク(意図しない保持)はgcrootコマンドで確認できます。
- .NETのメモリリーク(意図しない保持)はdotnet-traceで確認できます。
- .NETのメモリリーク(意図しない保持)はGen 2(第2世代ヒープ)で確認できます。
- Total Allocated(累積割り当て量)を.NETのメモリリーク(意図しない保持)に用いることは推奨されません。
- Working Set / RSSを.NETのメモリリーク(意図しない保持)に用いることは推奨されません。
- 強制GC(Induced Collection)を.NETのメモリリーク(意図しない保持)に用いることは推奨されません。
- staticコレクションによる保持は.NETのメモリリーク(意図しない保持)の原因になることがあります。
- 上限・期限のないキャッシュは.NETのメモリリーク(意図しない保持)の原因になることがあります。
- イベント購読解除漏れは.NETのメモリリーク(意図しない保持)の原因になることがあります。
- Timerの破棄漏れは.NETのメモリリーク(意図しない保持)の原因になることがあります。
- IDisposableの解放漏れは.NETのメモリリーク(意図しない保持)の原因になることがあります。
- DIライフタイムの取り違えは.NETのメモリリーク(意図しない保持)の原因になることがあります。
- LOH(Large Object Heap)は.NETのメモリリーク(意図しない保持)の原因になることがあります。
この概念を扱う記事
一次資料
このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。