C#の基礎:操作機構では、.NET GC

まず、GCは何ですか

GCは、ガベージコレクション(ガベージコレクタ)のための頭字語です。GC .NETは、最も重要なメカニズム、書き込みコードにプログラマのための最大のインパクト機構その道の多くの言うことができます。標準設定CLRの開始時に、すべてのメカニズムは、まだガベージコレクションが識別されたとき、適切な.NET Frameworkの中に存在するであろう。

ほとんどの.NETプログラムは、マネージコードと呼ばれています。マネージド非常に広い意味では、一つの重要な点は、統合管理のための.NETのメモリ管理およびガベージコレクションメカニズムによって、オブジェクトコードメモリの割り当てと解放。伝統的なC ++プログラマ異なる、C#やメモリ管理の対象は、最終的にリサイクルゴミを解放されますので、別のを生産するさまざまな方法で記述されたものの、.NET Frameworkのプログラマ警戒リークメモリとどまることはもはや必要性を標的とする他​​の言語と作業効率。

いくつかのアンマネージリソースを使用して、プログラマはまだそれらを手動で解放する必要がある場合にホストされているターゲットを指します。

いわゆるガベージコレクションは、.NETマネージヒープメモリは、もはやオブジェクトのクリーンアップの手段を使用すること、およびマネージヒープの側面にそれらを作る、まだ使用中のオブジェクトを動かします。次の図は、ガベージコレクションが変更後の管理ヒープを示しています。

図の二つの基本的な動作に分けて、GC処理が行われます。

  1. もはや使用されているすべてのオブジェクトを検索:AとCはオブジェクトなく、スパムとしてマークされました。
  2. で移動物体を用いたスローされる:オブジェクトB、オブジェクトD. そのようなオブジェクトは、メモリ空間のAとCは、次の使用のために割り当てられた時間を空にしました。

これは、GC処理の実行の処理が省略されて簡略化され、オブジェクトのFinalizeメソッドは、特殊ラージオブジェクトの割り当てを含みます。

ガベージコレクションは、.NETガベージコレクションメカニズムによって制御されているマネージヒープメモリが十分でない場合には、理論的には、.NETは、より多くのメモリを取得するために、ガベージコレクタを実行します割り当てることができ、アルゴリズムマイクロソフトのこの部分は、プログラマを開示していなかった正確にスパムを知られていないことができます実行時間をリサイクル。通常の状況下では、プログラマは、ガベージコレクションの実装を妨げる必要はありません。しかし、まだ手動CLRのガベージコレクションのメソッドを提供しています:GC.Collect()メソッド。プログラマは、もはやオブジェクトの特定の数とメモリのタイムリーなリリースを使用する必要があるときは、達成するために、このメソッドを呼び出すことはできません。

オブジェクトを見つけるために横断するように、ターゲットブロックの動きを伴うガベージコレクションは、それはリソース集約的なプロセスであり、使用されません。負担とガベージコレクションの数を最小限にするために:すべてのプログラムは、最適化戦略を持つことになります。プログラムの作成には、ガベージコレクションに余分な負担を意味するので、不要なリソース割り当てを避けるために注意しなければなりません。

第二に、要約

ガベージコレクションは、マネージヒープメモリオブジェクトはもはや使用されているコレクションのリリースを指します。アルゴリズムは、オブジェクトが使用されなくなっている見つかっていないすべてのオブジェクトが側マネージヒープに対して投げると、様々な状態変数を調整するために使用されるようにオブジェクトを移動:含まれる基本的なプロセス。

ガベージコレクションの高い運用コスト、パフォーマンスに大きな影響。ライト・コードへの.NETプログラマは、あなたは、ガベージコレクションがGC.Collectを使用して実行され、不要なメモリ割り当てを避ける最小限に抑えるか、または避けるべきです。

おすすめ

転載: www.cnblogs.com/dotnet261010/p/12330503.html