【めもりかんり】
メモリ管理 とは?
最終更新:
💡 作業スペースを用意し、使い終わったら片付ける
プログラムが使うメモリを確保し、使用し、不要になった領域を再利用できるようにする管理。OSの仮想メモリ管理と、言語や実行環境によるオブジェクトなどの管理がある。手動解放、GC、所有権など、方法は言語によって異なる。
📌 このページのポイント
- メモリの確保・使用・解放という流れを管理する
- OSの仮想メモリ管理と、言語や実行環境の管理を区別する
- Cの手動解放、JavaScriptのGC、Rustの所有権など方法は異なる
- GCがあっても、不要なデータへの参照を残すと解放されにくい
メモリ管理って、何を片付けるの?
プログラムがデータを置く作業スペースだよ。必要な領域を確保して、読み書きに使い、不要になったら解放して再利用できるようにする。机のスペースを用意して、作業後に片付けるイメージだね。
OSだけが管理しているの?
自分で解放しなくてよい言語もある?
あるよ。Cにはmalloc/freeのような手動管理の仕組みがある。JavaScriptではGCが到達できなくなったオブジェクトの領域を回収する。Rustは所有権などの規則により、所有者がスコープを出ると値を破棄するなど、別の方法を使うんだ。
GCがあれば、メモリリークは起きない?
まとめ:ざっくりこれだけ覚えればOK!
「メモリ管理」って出てきたら「プログラムの作業スペースを確保し、不要になったら再利用できるようにすること」と思えばだいたいOK!
📖 おまけ:英語の意味
「Memory Management」 = メモリ管理
💬 データを置くメモリ領域の確保・使用・解放を管理すること。OSとプログラミング言語・実行環境で、担当する範囲が異なるよ。