g.c.とは? わかりやすく解説

Weblio 辞書 > ビジネス > 新語時事用語辞典 > g.c.の意味・解説 

ジー‐シー【GC】

読み方:じーしー

《Global Compact》⇒国連グローバルコンパクト


ジー‐シー【GC】

読み方:じーしー

《GameCube》⇒ニンテンドーゲームキューブ


ガーベジコレクション

別名:ガベージコレクション
【英】Garbage Collection, GC

ガーベジコレクションとは、アプリケーションソフトを実行するために確保されたメモリ領域のうち、そのアプリケーションの終了後も確保されたままになっている領域をクリアして、ほかのアプリケーションソフトで使えるようにすることである。

コンピュータにおいて、不要になったメモリ領域が解放されず、再利用が不可能な状態が、メモリリークと呼ばれる。OSや常用しているアプリケーションでメモリリークが発生すると、メモリ不足に陥ってPCを正常に使用できなくなる場合がある。ガーベジコレクションの機能があると、そのような異常事態を未然に防ぐことができる。

なお、ガーベジコレクションを実行する機能のことをガーベジコレクタと呼ぶ。

プログラミングのほかの用語一覧
Java:  Javaアプレット  J2ME  JAXR  ガーベジコレクション  SJC-P  Sun Java Studio Creater  サーブレット

GC クラス

未使用メモリを自動的に収集するサービスであるシステム ガベージ コレクタを制御します。

名前空間: System
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

解説解説

このクラスのメソッドが影響するのは、オブジェクトに対してガベージ コレクションが実行されるときと、オブジェクトにより割り当てられたリソースを解放するときです。このクラスのプロパティは、システムで利用できるメモリの総量に関する情報、およびオブジェクトに割り当てられているメモリの世代カテゴリ、つまりジェネレーションに関する情報を提供します。

ガベージ コレクタは、マネージ メモリで割り当てられているオブジェクトを追跡し、収集します。ガベージ コレクタは定期的にガベージ コレクションを実行して、有効な参照がないオブジェクトに割り当てられているメモリを収集します。使用可能な空きメモリを使用して、メモリの要求に応えられない場合、ガベージ コレクションが自動的に実行されます。または、アプリケーションは Collect メソッドを使用して、ガベージ コレクションを強制的に実行することもできます。

ガベージ コレクションは、次に示すステップを実行します。

  1. ガベージ コレクタは、マネージ コードで参照されるマネージ オブジェクトを検索します。

  2. ガベージ コレクタは、参照されないオブジェクトの終了を試みます。

  3. ガベージ コレクタは、参照されないオブジェクトを解放し、それらのオブジェクトのメモリを収集します。

コレクションの実行中、マネージ コード内のオブジェクトへの 1 つ以上の参照が見つかった場合、ガベージ コレクタはそのオブジェクトを解放しません。ただし、ガベージ コレクタは、アンマネージ コードからのオブジェクトへの参照は認識しないため、アンマネージ コードで排他的に使用されているオブジェクトを解放しないように指定されていない限りは、そのようなオブジェクトを解放してしまう場合があります。KeepAlive メソッドには、アンマネージ コードで使用中のオブジェクトをガベージ コレクタが収集するのを防ぐ機構が用意されています。

ガベージ コレクタの実装は、マネージ メモリの割り当てに関する情報を除いて、ファイル ハンドルやデータベース接続などのオブジェクトが所有するリソースに関する情報は保持していません。ある型がアンマネージ リソースを使用し、その型のインスタンスを収集する前にそのリソースを解放する必要がある場合、その型はファイナライザを実装できます。

ほとんどの場合、ファイナライザは Object.Finalize メソッドをオーバーライドすることで実装されますが、C# または C++ で作成された型はデストラクタを実装し、コンパイラがそれらのデストラクタを Object.Finalize のオーバーライドとして処理します。ほとんどの場合、オブジェクトにファイナライザがあれば、ガベージ コレクタはそのオブジェクトを解放する前にファイナライザを呼び出します。ただし、ガベージ コレクタでファイナライザを呼び出さなくてもよい場合もあります。たとえば、SuppressFinalize メソッドでは、ファイナライザの呼び出しを明示的に禁止しています。さらに、ガベージ コレクタは、オブジェクトの終了操作を行うために特定のスレッドを使用することや、相互に参照されているオブジェクトに対してファイナライザが呼び出される順序を保証することはありません。オブジェクトは相互に参照されていない場合には、ガベージ コレクションの対象となります。

特定の時点でリソースを解放する必要がある場合、クラスは、リソース管理やクリーンアップのタスクを実行する IDisposable.Dispose メソッドが含まれた IDisposable インターフェイスを実装できます。Dispose を実装するクラスは、そのクラスのコンシューマがオブジェクトをクリーンアップするためにこのメソッドを呼び出す必要がある場合と、呼び出すタイミングについて、クラスのコントラクトの一部として指定する必要があります。既定では、ガベージ コレクタは Dispose メソッドを呼び出しません。ただし、Dispose メソッドの実装は、GC クラス内のメソッドを呼び出して、ガベージ コレクタの終了操作をカスタマイズできます。

ガベージ コレクタがジェネレーションを使用してオブジェクトの世代化をサポートすることをお勧めしますが、必須ではありません。ジェネレーションとは、メモリ内のオブジェクトの相対世代の単位です。オブジェクトのジェネレーション番号、つまり世代は、オブジェクトが属するジェネレーションを示します。新しく作成されたオブジェクトは、新しいジェネレーションの一部になり、アプリケーション有効期間内で先に作成されたオブジェクトよりも小さいジェネレーション番号が与えられます。最も新しいジェネレーションのオブジェクトは、ジェネレーション 0 に属します。

実装時の注意 ガベージ コレクタの実装は、オブジェクトの 3 つのジェネレーションをサポートします。 MaxGeneration は、システムがサポートする最大ジェネレーション番号を決定するために使用されます。オブジェクトの世代化により、特定のジェネレーションのセットがガベージ コレクションの対象になるため、ガベージ コレクタがすべてのジェネレーションを評価する必要はなくなります。

使用例使用例
Imports System

Namespace GCCollectInt_Example
    Class MyGCCollectClass
        Private maxGarbage As Long
 = 10000

        Public Shared Sub
 Main()
            Dim myGCCol As New
 MyGCCollectClass

            'Determine the maximum number of generations the system
            'garbage collector currently supports.
            Console.WriteLine("The highest generation is {0}",
 GC.MaxGeneration)

            myGCCol.MakeSomeGarbage()

            'Determine which generation myGCCol object is stored in.
            Console.WriteLine("Generation: {0}", GC.GetGeneration(myGCCol))

            'Determine the best available approximation of the number
 
            'of bytes currently allocated in managed memory.
            Console.WriteLine("Total Memory: {0}",
 GC.GetTotalMemory(False))

            'Perform a collection of generation 0 only.
            GC.Collect(0)

            'Determine which generation myGCCol object is stored in.
            Console.WriteLine("Generation: {0}", GC.GetGeneration(myGCCol))

            Console.WriteLine("Total Memory: {0}",
 GC.GetTotalMemory(False))

            'Perform a collection of all generations up to and including
 2.
            GC.Collect(2)

            'Determine which generation myGCCol object is stored in.
            Console.WriteLine("Generation: {0}", GC.GetGeneration(myGCCol))
            Console.WriteLine("Total Memory: {0}",
 GC.GetTotalMemory(False))
            Console.Read()

        End Sub


        Sub MakeSomeGarbage()
            Dim vt As Version

            Dim i As Integer
            For i = 0 To maxGarbage - 1
                'Create objects and release them to fill up memory
                'with unused objects.
                vt = New Version
            Next i
        End Sub
    End Class
End Namespace
using System;

namespace GCCollectIntExample
{
    class MyGCCollectClass
    {
        private const long maxGarbage = 1000;
      
        static void Main()
        {
            MyGCCollectClass myGCCol = new MyGCCollectClass();

            // Determine the maximum number of generations the system
        // garbage collector currently supports.
            Console.WriteLine("The highest generation is {0}", GC.MaxGeneration);
            
            myGCCol.MakeSomeGarbage();

            // Determine which generation myGCCol object is stored in.
            Console.WriteLine("Generation: {0}", GC.GetGeneration(myGCCol));
            
            // Determine the best available approximation of the number
 
        // of bytes currently allocated in managed memory.
            Console.WriteLine("Total Memory: {0}", GC.GetTotalMemory(false));
            
            // Perform a collection of generation 0 only.
            GC.Collect(0);
            
            // Determine which generation myGCCol object is stored in.
            Console.WriteLine("Generation: {0}", GC.GetGeneration(myGCCol));
            
            Console.WriteLine("Total Memory: {0}", GC.GetTotalMemory(false));
            
            // Perform a collection of all generations up to and including
 2.
            GC.Collect(2);
            
            // Determine which generation myGCCol object is stored in.
            Console.WriteLine("Generation: {0}", GC.GetGeneration(myGCCol));
            Console.WriteLine("Total Memory: {0}", GC.GetTotalMemory(false));
            Console.Read();
        }

        void MakeSomeGarbage()
        {
            Version vt;

            for(int i = 0; i < maxGarbage;
 i++)
            {
                // Create objects and release them to fill up memory
        // with unused objects.
                vt = new Version();
            }
        }
    }
}
using namespace System;
const long maxGarbage = 1000;
ref class MyGCCollectClass
{
public:
   void MakeSomeGarbage()
   {
      Version^ vt;
      for ( int i = 0; i < maxGarbage; i++
 )
      {
         
         // Create objects and release them to fill up memory
         // with unused objects.
         vt = gcnew Version;

      }
   }

};

int main()
{
   MyGCCollectClass^ myGCCol = gcnew MyGCCollectClass;
   
   // Determine the maximum number of generations the system
   // garbage collector currently supports.
   Console::WriteLine( "The highest generation is {0}", GC::MaxGeneration
 );
   myGCCol->MakeSomeGarbage();
   
   // Determine which generation myGCCol object is stored in.
   Console::WriteLine( "Generation: {0}", GC::GetGeneration( myGCCol )
 );
   
   // Determine the best available approximation of the number
   // of bytes currently allocated in managed memory.
   Console::WriteLine( "Total Memory: {0}", GC::GetTotalMemory( false
 ) );
   
   // Perform a collection of generation 0 only.
   GC::Collect( 0 );
   
   // Determine which generation myGCCol object is stored in.
   Console::WriteLine( "Generation: {0}", GC::GetGeneration( myGCCol )
 );
   Console::WriteLine( "Total Memory: {0}", GC::GetTotalMemory( false
 ) );
   
   // Perform a collection of all generations up to and including 2.
   GC::Collect( 2 );
   
   // Determine which generation myGCCol object is stored in.
   Console::WriteLine( "Generation: {0}", GC::GetGeneration( myGCCol )
 );
   Console::WriteLine( "Total Memory: {0}", GC::GetTotalMemory( false
 ) );
}

package GCCollectIntExample; 

import System.* ;

class MyGCCollectClass
{
    private static final long maxGarbage =
 1000;

    public static void main(String[]
 args)
    {
        MyGCCollectClass myGCCol = new MyGCCollectClass();

        // Determine the maximum number of generations the system
        // garbage collector currently supports.
        Console.WriteLine("The highest generation is {0}", 
            System.Convert.ToString(GC.get_MaxGeneration()));
        myGCCol.MakeSomeGarbage();

        // Determine which generation myGCCol object is stored in.
        Console.WriteLine("Generation: {0}", 
            System.Convert.ToString(GC.GetGeneration(myGCCol)));

        // Determine the best available approximation of the number
 
        // of bytes currently allocated in managed memory.
        Console.WriteLine("Total Memory: {0}", 
            System.Convert.ToString(GC.GetTotalMemory(false)));

        // Perform a collection of generation 0 only.
        GC.Collect(0);

        // Determine which generation myGCCol object is stored in.
        Console.WriteLine("Generation: {0}", 
            System.Convert.ToString(GC.GetGeneration(myGCCol)));
        Console.WriteLine("Total Memory: {0}", 
            System.Convert.ToString(GC.GetTotalMemory(false)));

        // Perform a collection of all generations up to and including
 2.
        GC.Collect(2);

        // Determine which generation myGCCol object is stored in.
        Console.WriteLine("Generation: {0}", 
            System.Convert.ToString(GC.GetGeneration(myGCCol)));
        Console.WriteLine("Total Memory: {0}", 
            System.Convert.ToString(GC.GetTotalMemory(false)));
        Console.Read();
    } //main

    void MakeSomeGarbage()
    {
        Version vt;

        for (int i = 0; i < maxGarbage;
 i++) {
            // Create objects and release them to fill up memory
            // with unused objects.
            vt = new Version();
        }
    } //MakeSomeGarbage
} //MyGCCollectClass
継承階層継承階層
System.Object
  System.GC
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

GC プロパティ


GC メソッド


パブリック メソッドパブリック メソッド

  名前 説明
パブリック メソッド AddMemoryPressure アンマネージ メモリが大規模に割り当てられたため、ガベージ コレクションをスケジュールするときに考慮する必要があることが、ランタイムに通知されます。
パブリック メソッド Collect オーバーロードされます。 強制的にガベージ コレクションを行います。
パブリック メソッド CollectionCount 指定したジェネレーションのオブジェクトに対するガベージ コレクションの発生回数を返します。
パブリック メソッド Equals  オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 ( Object から継承されます。)
パブリック メソッド GetGeneration オーバーロードされます。 オブジェクトの現在のジェネレーション番号を返します。
パブリック メソッド GetHashCode  特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。)
パブリック メソッド GetTotalMemory 現在割り当てられていると思われるバイト数を取得します。このメソッドが制御を戻す前に短い時間だけ待機して、システムがガベージ コレクションを行い、オブジェクトの終了操作を実行できるようにするかどうかをパラメータで示します。
パブリック メソッド GetType  現在のインスタンスの Type を取得します。 ( Object から継承されます。)
パブリック メソッド KeepAlive 指定したオブジェクトを参照し、現在のルーチンの開始時からこのメソッドが呼び出される時点までの間、そのオブジェクトをガベージ コレクションの対象から外します。
パブリック メソッド ReferenceEquals  指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。)
パブリック メソッド RemoveMemoryPressure アンマネージ メモリが解放され、ガベージ コレクションのスケジュールにこのメモリを考慮する必要がなくなったことをランタイムに通知します。
パブリック メソッド ReRegisterForFinalize SuppressFinalize が既に呼び出されている指定オブジェクトに対して、ファイナライザを呼び出すことをシステムに要求します。
パブリック メソッド SuppressFinalize 指定したオブジェクトに対して、ファイナライザを呼び出さないことをシステムに要求します。
パブリック メソッド ToString  現在の Object を表す String を返します。 ( Object から継承されます。)
パブリック メソッド WaitForPendingFinalizers ファイナライザのキューを処理するスレッドがそのキューを空にするまで、現在のスレッドを中断します。
参照参照

関連項目

GC クラス
System 名前空間

GC メンバ

未使用メモリを自動的に収集するサービスであるシステム ガベージ コレクタを制御します。

GC データ型で公開されるメンバを以下の表に示します。


パブリック プロパティパブリック プロパティ
パブリック メソッドパブリック メソッド
  名前 説明
パブリック メソッド AddMemoryPressure アンマネージ メモリが大規模に割り当てられたため、ガベージ コレクションをスケジュールするときに考慮する必要があることが、ランタイムに通知されます。
パブリック メソッド Collect オーバーロードされます。 強制的にガベージ コレクションを行います。
パブリック メソッド CollectionCount 指定したジェネレーションのオブジェクトに対するガベージ コレクションの発生回数を返します。
パブリック メソッド Equals  オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。)
パブリック メソッド GetGeneration オーバーロードされます。 オブジェクトの現在のジェネレーション番号を返します。
パブリック メソッド GetHashCode  特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。)
パブリック メソッド GetTotalMemory 現在割り当てられていると思われるバイト数を取得します。このメソッドが制御を戻す前に短い時間だけ待機して、システムがガベージ コレクションを行い、オブジェクトの終了操作を実行できるようにするかどうかをパラメータで示します。
パブリック メソッド GetType  現在のインスタンスの Type を取得します。 (Object から継承されます。)
パブリック メソッド KeepAlive 指定したオブジェクトを参照し、現在のルーチンの開始時からこのメソッドが呼び出される時点までの間、そのオブジェクトをガベージ コレクションの対象から外します。
パブリック メソッド ReferenceEquals  指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。)
パブリック メソッド RemoveMemoryPressure アンマネージ メモリが解放され、ガベージ コレクションのスケジュールにこのメモリを考慮する必要がなくなったことをランタイムに通知します。
パブリック メソッド ReRegisterForFinalize SuppressFinalize が既に呼び出されている指定オブジェクトに対して、ファイナライザを呼び出すことをシステムに要求します。
パブリック メソッド SuppressFinalize 指定したオブジェクトに対して、ファイナライザを呼び出さないことをシステムに要求します。
パブリック メソッド ToString  現在の Object を表す String を返します。 (Object から継承されます。)
パブリック メソッド WaitForPendingFinalizers ファイナライザのキューを処理するスレッドがそのキューを空にするまで、現在のスレッドを中断します。
参照参照

関連項目

GC クラス
System 名前空間

ガス クロマトグラフィー

【英】gas chromatography , GC

試料を窒素やヘリウムなどの不活性ガスによって分離管内で展開し,管内の充てん剤に対する吸着性や分配性の違いにより成分を分離して検出する方法。脂肪酸や軽質の燃料などの組成分析に利用される。
その他、潤滑剤やメンテナンス用品、作業環境保護など工場・現場が必要としている商品や供給会社に関する情報については、「ジュンツウネット21」で見ることができます。 ⇒ 「ジュンツウネット21」

GC

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2026/05/16 05:46 UTC 版)

GC

学術的な単位・記号

  • Gc - 非SI接頭辞 グルーチ (grouchi) 。1030。Morgan Burkeの提案
  • gc - 非SI接頭辞 グルーチョ (groucho) 。10-30。Morgan Burkeの提案

正式名称

略語・略称

一般名詞・術語

固有名詞

企業・組織

イベント

人のユニット

商品名

コード・形式名

関連項目


G.C(ギャラクシーセンチュリー)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/02/19 04:00 UTC 版)

「RobiHachi」の記事における「G.C(ギャラクシーセンチュリー)」の解説

西暦1969年11月18日、アポロ11号に先んじて日本人民間宇宙飛行士が月に到達。さらに宇宙人とファーストコンタクトを果たした。この年から年号がG.C(ギャラクシーセンチュリー)に改められた。

※この「G.C(ギャラクシーセンチュリー)」の解説は、「RobiHachi」の解説の一部です。
「G.C(ギャラクシーセンチュリー)」を含む「RobiHachi」の記事については、「RobiHachi」の概要を参照ください。

ウィキペディア小見出し辞書の「g.c.」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ。

「GC」の例文・使い方・用例・文例

Weblio日本語例文用例辞書はプログラムで機械的に例文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。


英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

「g.c.」に関係したコラム

  • FXの口座明細の証拠金や維持率とは

    FX(外国為替証拠金取引)の口座明細には、証拠金や維持率のような専門用語が使われています。ここでは、それらの用語の意味や計算方法について解説します。建玉可能金額(たてぎょくかのうきんがく)新規に建玉(...

辞書ショートカット

すべての辞書の索引

「g.c.」の関連用語

g.c.のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



g.c.のページの著作権

   
新語時事用語辞典新語時事用語辞典
Copyright © 2026 新語時事用語辞典 All Rights Reserved.
デジタル大辞泉デジタル大辞泉
(C)Shogakukan Inc.
株式会社 小学館
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.
IT用語辞典バイナリIT用語辞典バイナリ
Copyright © 2005-2026 Weblio 辞書 IT用語辞典バイナリさくいん。 この記事は、IT用語辞典バイナリの【ガーベジコレクション】の記事を利用しております。
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.
三栄書房三栄書房
Copyright c San-eishobo Publishing Co.,Ltd.All Rights Reserved.
潤滑通信社潤滑通信社
copyright © 潤滑通信社 All Rights Reserved
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのGC (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、WikipediaのRobiHachi (改訂履歴)、ジバクくん (改訂履歴)、エム×ゼロ (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。
Tanaka Corpusのコンテンツは、特に明示されている場合を除いて、次のライセンスに従います:
 Creative Commons Attribution (CC-BY) 2.0 France.
この対訳データはCreative Commons Attribution 3.0 Unportedでライセンスされています。
浜島書店 Catch a Wave
Copyright © 1995-2026 Hamajima Shoten, Publishers. All rights reserved.
株式会社ベネッセコーポレーション株式会社ベネッセコーポレーション
Copyright © Benesse Holdings, Inc. All rights reserved.
研究社研究社
Copyright (c) 1995-2026 Kenkyusha Co., Ltd. All rights reserved.
日本語WordNet日本語WordNet
日本語ワードネット1.1版 (C) 情報通信研究機構, 2009-2010 License All rights reserved.
WordNet 3.0 Copyright 2006 by Princeton University. All rights reserved. License
日外アソシエーツ株式会社日外アソシエーツ株式会社
Copyright (C) 1994- Nichigai Associates, Inc., All rights reserved.
「斎藤和英大辞典」斎藤秀三郎著、日外アソシエーツ辞書編集部編
EDRDGEDRDG
This page uses the JMdict dictionary files. These files are the property of the Electronic Dictionary Research and Development Group, and are used in conformance with the Group's licence.

©2026 GRAS Group, Inc.RSS