メモリリーク【基本情報技術者・解説】

メモリリークの説明として,適切なものはどれか。

ア)OSやアプリケーションのバグなどが原因で
動作中に確保した主記憶が解放されないことであり
これが発生すると主記憶中の利用可能な部分が減少する。

イ)アプリケーションの同時実行数を増やした場合に,主記憶容量が不足し
処理時間のほとんどがページングに費やされ,スループットの極端な低下を招くことである。

ウ)実行時のプログラム領域の大きさに制限があるときに
必要になったモジュールを主記憶に取り込む手法である。

エ)主記憶で利用可能な空き領域の総量は足りているのに
主記憶中に不連続で散在しているので
大きなフログラムをロードする領域が確保できないことである。


今回は先に答えをいうと(ア)が正解だよ。(・ω・*)

プログラムってのは
動作中にデータを一時保管する場所としてメモリを使用しているんだけど
「×ボタン」を押してプログラムを終了すると同時に
一時保管したデータは消去するように作られているんだよ。
普通はね。

例えば、メモ帳アプリに日記を書くという例で考えてみよう。
あなたがメモ帳に日記を書いている間は
プログラムはメモリ上に書いた内容を一時的に保存してるんだ。
仮保存ってやつだね。
で、書き終わった日記は「名前をつけて保存」or「保存」することで
ハードディスクへ正式なデータとして保存されるんだ。(´・ω・
)

メモリ上にあるだけの状態ではあくまで仮保存だから
「×ボタン」を押してメモ帳アプリを終了すると書いた日記のデータは
当然消去されてしまう。
だけどプログラムのバグにより、消去したはずの仮保存日記データが
いつまでもメモリ上に残ってしまうことがある。

保存をせずにメモ帳を終了したのにまだ日記データが残っている・・・
そんな事があったら気持ち悪いよね・・・

と、いうことでこれがメモリリークが起きる原因になんだ!


もう必要のない日記データがいつまでもメモリ上に残っているとなると
当然その分使用できるメモリの領域は減ってしまう。
そして使用できるメモリの領域が減ってしまうと
パソコン全体の動作が重くなることに繋がってしまうんだよ。

別に日記みたいなテキストデータだと
さほどメモリの容量を食ったりはしないから問題ないよ。
でも、例えばゲームとか動画みたいなくっそ重いプログラムに
メモリ解放をし忘れるバグがあってごらんよ。
「なぜかあのゲームで遊んだ後はパソコンのプログラムが起動しないよー;;;」
って事になりかねない。
メモリの解放は忘れないようにしないとね。