メモリリーク

更新日:

用語解説

メモリリークは、プログラムが動作中に確保した主記憶の領域を、使い終わっても解放しないために、使える主記憶が少しずつ減っていく現象です。OSやアプリケーションのバグが原因で起こります。

■ 試験で押さえるポイント

  • 長時間動かし続けると、空き領域が足りなくなり、処理が遅くなったり、システムが停止したりします。

  • 再起動すると確保されていた領域が解放されるので、一時的には回復します。根本的には、確保した領域を必ず解放するようにプログラムを直します。

  • Javaなどのガーベジコレクションをもつ言語では、使われなくなった領域が自動的に解放されますが、参照が残っているとメモリリークが起こることがあります。

現象・手法

内容

メモリリーク

確保した領域が解放されず、使える主記憶が減っていく

フラグメンテーション

空き領域の総量は足りるが、不連続に散らばっていて使えない

スラッシング

主記憶が足りず、ページの入れ替えに処理時間のほとんどが費やされる

オーバーレイ

必要になったモジュールを主記憶に読み込んで実行する手法

■ 選択肢での判断ポイント

「確保した主記憶が解放されない」のがメモリリークです。空き領域が細かく散らばって大きな領域を確保できないのはフラグメンテーション(断片化)、ページングに処理時間のほとんどを費やすのはスラッシング、必要なモジュールをその都度読み込むのはオーバーレイです。

同じ分野の用語