メモリプール 【memory pool】 メモリープール
概要
メモリプール(memory pool)とは、コンピュータプログラムの実行時に素早く動的に必要なメモリ領域を確保するために、プログラムの起動時などにメインメモリの空き領域からある程度大きな領域を一括して確保したもの。リアルタイムOSなどで用いられるメモリ管理方式の一つで、頻繁にメモリの確保が必要な場合に、逐一オペレーティングシステム(OS)に割り当てを依頼するよりも高速に処理することができる。メモリプール単位で確保や解放を行なうことで、個々の領域の解放し忘れなどに起因するメモリリークなどの問題を低減することができる。
メモリプール内部の割り当てや管理の方式には固定長方式と可変長方式がある。固定長方式はメモリプール内をあらかじめ決まった大きさのブロックに分割し、必要な数だけ割り当てる。割り当てや解放にかかる処理時間が短く一定で、空き領域の断片化(フラグメンテーション)が起きないが、ブロック内に使われない領域が生じやすく空間効率が悪化しやすい。
可変長方式はメモリプールから必要なサイズのブロックをその都度確保して割り当てる。プログラムが要求する容量を正確に与えることができるが、確保と解放を繰り返すうちに空き領域の断片化が進み、次第に長いブロックを確保しにくくなる。割り当てや解放にかかる処理時間も一定しない。
(2020.5.13更新)