最終更新:2015-04-28 (火) 04:34:24 (3286d)
.NET Framework/メモリ管理
Top / .NET Framework / メモリ管理
https://msdn.microsoft.com/ja-jp/library/f144e03t(v=vs.110).aspx
マネージヒープ?
- 新しいプロセスが初期化されると、ランタイムは連続したアドレス空間領域をそのプロセスのために予約します。 この予約済みのアドレス空間をマネージ ヒープと呼びます。
- マネージ ヒープは、ヒープ内で次のオブジェクトを割り当てるアドレスへのポインターを管理します。
- 初期状態では、このポインターはマネージ ヒープのベース アドレスに設定されます。
- すべての[[参照型は、マネージ ヒープ上に割り当てられます。
- ガベージコレクションの対象
- 参照型のデータのインスタンスを保持するための空間。容量が非常に大きい。
スレッドのスタック
- ローカルデータ変数を保持するための空間。容量が比較的小さい
- 値型のデータや参照型の参照情報(つまり、変数が保持しているデータ)が保存されるのは、スタックと呼ばれるメモリ領域
- 変数が使われなくなると(スコープの範囲外に出ると)、すぐに自動的に解放される
- Main() 関数が動作すると、メインスレッドに対してスタックメモリ領域が作成される