SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

マンガで分かるプログラミング用語辞典

「ガーベジコレクタ」
~マンガでプログラミング用語解説

マンガで分かるプログラミング用語辞典(44)

  • X ポスト
  • このエントリーをはてなブックマークに追加

解説

 日本語に訳すと「ゴミ収集人」になる「ガーベジコレクタ」は、メモリ管理の仕組みです。GCとも略されます。

 garbageは、発音記号をそのまま日本語読みするとガービジ/ガーベジ/ガーベッジに近いのですが、ドキュメントによってはガベージなど表記がまちまちです。

 最近の、オブジェクト指向系のプログラミング言語にはたいていついており、使用しなくなったオブジェクトを破棄して、メモリを自動的に開放してくれます。

 このガーベジコレクタは、オブジェクトの参照を見ていき、どこからも参照されていないオブジェクトを破棄対象として、そのメモリを解放します。

 ガーベジコレクタの内部の仕組みは、それぞれのプログラミング言語によって違います。また、同じプログラミング言語によっても、バージョンによってその挙動やアルゴリズムが違います。

 ガーベジコレクタの詳細な動作を知りたい場合は、各プログラミング言語の、対象となるバージョンのドキュメントを参照してください。

サンプル

 ガーベジコレクタの様子が分かるコードを、代表的なオブジェクト指向のプログラミング言語であるJavaで簡単に書いてみます。

com/crocro/GCTest.java
package com.crocro;

public class GCTest {
    public static void main(String[] args) {
        // メモリ確保
        int[] arr = new int[100 * 1000 * 1000];
        
        // 開始時使用メモリ
        long memStrt = Runtime.getRuntime().totalMemory()
            - Runtime.getRuntime().freeMemory();

        // 結果出力
        System.out.println("memStrt : " + memStrt);

        // GC
        arr = null;
        System.gc();

        // 終了時使用メモリ
        long memEnd = Runtime.getRuntime().totalMemory()
            - Runtime.getRuntime().freeMemory();

        // 結果出力
        System.out.println("memStrt : " + memEnd);
    }
}
出力結果
memStrt : 401006760
memEnd : 420640
フィードバックお待ちしております!

 ご感想、解説して欲しい用語、解説内容のアドバイスなどございましたら、FacebookTwitterなどでお気軽に編集部までお寄せください。よろしくお願いいたします。

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
マンガで分かるプログラミング用語辞典連載記事一覧

もっと読む

この記事の著者

柳井 政和(ヤナイ マサカズ)

クロノス・クラウン合同会社 代表社員http://crocro.com/オンラインソフトを多数公開。プログラムを書いたり、ゲームを作ったり、記事を執筆したり、マンガを描いたり、小説を書いたりしています。「めもりーくりーなー」でオンラインソフト大賞に入賞。最近は、小説家デビューして小説も書いています(『裏切りのプログラム』他)。面白いことなら何でもOKのさすらいの企画屋です。 

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/7509 2013/12/31 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング