回答編
ガベージコレクションは使われていないメモリをクリアして、他のアプリに使わせる機構のことね。本来プログラムのメモリは明示的に解放しないと占有され続けるから、それをいちいち人間が操作しないでいいようにするためのものよ。
使われていないメモリなら他のアプリケーションが自由に使えるんじゃないですか? わざわざ解放する必要があるんです?
あるのよ。そもそもプログラムって使うメモリ量と期間を考えて実行させるものだから。今から何バイトメモリを占拠しまーす! って宣言しないと処理一つ動かせないの。で、たまに解放処理を忘れると使われていないメモリがどんどんたまっていく。これがすなわちメモリリークね。
ああ、それ知ってます。OSのメモリ使用量がどんどん上がってって、再起動しなきゃダメになって、『一体なぜ?』と思ったらアプリがメモリリークしてましたっていう。
そうそう。で、そういうことを避けるためにあるのがガベージコレクションね。ちなみにガベージコレクションを行うモジュールのことをガベージコレクタと呼ぶ。直訳するとゴミ収集者。
ご、ゴミ収集ですか!? いや……使われてないメモリを回収するなら意味的にあってますけど……ええええ。
まぁ悪のマフィア『ゴミ収集者』じゃしまらないわよね。
……いや、もうそうこらへんのギャップは慣れたので諦めます。ちなみにガベージコレクションの存在が一般的ならメモリリークって起きないはずですよね? でも時々バグレポートとかでまだ見かけるんですけど。
ガベージコレクタって要はプログラムだからね。それを動かすためにもCPUやリソースを消費するのよ。パフォーマンス確保するためのプログラムでPC重くなったら本末転倒でしょ? だからリアルタイム性の高いプログラムなどではガベージコレクタを使わず手動でメモリ管理することもある。
その結果、解放忘れてメモリリーク起こすってことですか?
ま、そういうこともあるわね。
……色々面倒くさいですね。
面倒くさい話だからこそ、そのあたりを根本的に解決できればビジネスチャンスかもよ? あんたの大好きなお金がガッポガッポ。
!! 室見さん、僕ちょっとプログラミングの勉強をすることにしました。今日から始めようと思いますんでご指南お願いできますか?
そう? じゃあとりあえずこの教材使ってみたらどうかしら。簡単な要件とテストケースが書いてあるから。あんたでも頑張ればできると思う。
ありがとうございます! よぉしやるぞー!(自席に戻り激しくタッチタイプし始める)
……あれ? 室見さん、さっきお願いしたコーディングの仕事、桜坂君がやってるの?
なんか本人やる気みたいだったんでー。任せちゃいましたー。
イエーイ! 夢はでっかくIT億万長者! ヤッフー!(遠ざかる打鍵音、フェイドアウト)
【解説】
ガベージコレクション:
使用されていないメモリを自動的に回収・解放すること。本来プログラマが明示的に行わなければいけないメモリ管理を省力化する。反面CPUリソースを消費するため、高負荷なプログラムとの併用時は注意が必要。
この連載の記事
-
最終回
トピックス
IT業界の夢とロマンが詰まった、最終回なIT用語! -
第43回
トピックス
業界人は軍事用語好き? やっぱり中二病なんですかね、なIT用語 -
第42回
トピックス
サッカー漫画で何を思い浮かべるかで世代が分かるIT用語 -
第41回
トピックス
いくぜっ、バーストモード! 動作クロック30倍! なIT用語 -
第40回
トピックス
前世の記憶は信じなくても、過去のミスは忘れない室見さん、なIT用語 -
第39回
トピックス
もう一人の自分を解き放て! 対比で分かる中二病的IT用語 -
第38回
トピックス
生命を刈り取る「不死の軍団」みたいなIT用語 -
第37回
トピックス
MK2、透明で発展系のMK2……なIT用語 -
第36回
トピックス
お金がかかるをキーワードにいろいろな話題が広がったIT用語 -
第35回
トピックス
理化学とミリタリーへの憧れが中二病につながるかもしれないIT用語 -
第34回
トピックス
超兵器とリンク、しているようで実はただ乗りしてるだけのようなIT用語 - この連載の一覧へ