【C#】.NETのメモリリークについて
◇メモリリークが発生する箇所
①スタック
②アンマネージ ヒープ
③マネージ ヒープ
◇発生箇所の特定方法
・タスクマネージャのパフォーマンスカウントを確認する。
・パフォーマンスモニタを使用して確認する。
[スタート] → [コントロールパネル] → [管理ツール] → パフォーマンス
①アプリケーションの論理スレッド数が予想外に増加している場合
⇒スレッドスタックでリークが発生
②Private Bytes が増加していても、# Bytes in All Heaps が安定した状態
⇒アンマネージ メモリでリークが発生
③どちらのカウンタも共に増加している場合
⇒マネージ ヒープのメモリでリークが発生
◆参照URL
マネージ コードでのメモリ リークの識別と回避
Windowsパフォーマンスモニタ
メモリリークと調査方法
---
用語一覧
・MSIL:
Microsoft .NET環境で使用される、実行可能コードを記述するための中間言語
・AppDomain クラス
アプリケーション ドメインを表します。
・Control.Invoke メソッド
コントロールの基になるウィンドウ ハンドルを所有するスレッド上で、デリゲートを実行します。

ポチポチっとクリックして頂ければうれしいです<(_ _ )>
①スタック
②アンマネージ ヒープ
③マネージ ヒープ
◇発生箇所の特定方法
・タスクマネージャのパフォーマンスカウントを確認する。
・パフォーマンスモニタを使用して確認する。
[スタート] → [コントロールパネル] → [管理ツール] → パフォーマンス
①アプリケーションの論理スレッド数が予想外に増加している場合
⇒スレッドスタックでリークが発生
②Private Bytes が増加していても、# Bytes in All Heaps が安定した状態
⇒アンマネージ メモリでリークが発生
③どちらのカウンタも共に増加している場合
⇒マネージ ヒープのメモリでリークが発生
◆参照URL
マネージ コードでのメモリ リークの識別と回避
Windowsパフォーマンスモニタ
メモリリークと調査方法
---
用語一覧
・MSIL:
Microsoft .NET環境で使用される、実行可能コードを記述するための中間言語
・AppDomain クラス
アプリケーション ドメインを表します。
・Control.Invoke メソッド
コントロールの基になるウィンドウ ハンドルを所有するスレッド上で、デリゲートを実行します。
- 関連記事
ポチポチっとクリックして頂ければうれしいです<(_ _ )>
Posted on 2011/04/03 Sun. 21:36 [edit]
« 【C#】コントロールの描画 | 【C#】すべての Windows フォームにグリッド オプションを設定する »
この記事に対するコメント
トラックバック
| h o m e |