応用情報暗記無料で始める

メモリリークとは?めもりりーく

メモリリークとは、動的に確保した記憶領域を解放し忘れ、使われないまま占有され続ける不具合。一回の量が数キロバイトでも、長時間動き続けるサーバでは要求のたびに積み上がり、やがて空き不足とページングの多発を招いて性能劣化や異常終了に至る。単体テストでは再現せず、稼働時間に比例して現れるのが特徴である。

最終更新:2026-10-06

試験情報

応用情報技術者試験の過去問では2問の解説で触れられています(2020年度〜2021年度)。

応用情報技術者試験の頻出用語/テクノロジ系

この語が出る過去問を解く →

背景

確保と解放を人が対で書く言語では、正常系だけを追って解放を書くと、例外や早期リターンの経路で解放が抜ける。短時間で終わるバッチなら終了時にまとめて回収されるので誰も困らなかったが、常駐プロセスが何週間も動き続ける運用が当たり前になった時点で、この抜けが表面化した。無停止で動かしたいという要求と、資源の後始末を人が書くという実装様式の摩擦から生まれた不具合類型である。

具体例

再起動すると直り、数日でまた重くなるという障害では、メモリ使用量の時系列が階段状に右肩上がりになっていないかをまず見る。JavaならVisualVMやjmapでヒープダンプを取り、世代を越えて生き残るオブジェクトの参照元をたどる。C系ならValgrindのmemcheckが未解放ブロックの確保位置を示す。

試験での引っ掛け

ガーベジコレクションがあれば起きないという理解が最も危ない。到達可能な参照が残っていれば回収対象にならず、キャッシュやリスナ登録の解除漏れがそのまま蓄積する。またフラグメンテーションは「解放済みだが小片化して使えない」状態であり、「解放されていない」リークとは原因も対処も別である。

関連用語

出た過去問

解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。

この語が出る過去問を解く →

試験での特徴
  • 2問の解説で触れられる(2020年度〜2021年度)
  • 分野:テクノロジ系
  • ガーベジコレクションがあれば起きないという理解が最も危ない。