メモリプール (Memory pools) は、en:固定サイズブロック割り当てとも呼ばれ、メモリ管理にプール(英語版)を使用することで、mallocまたはC++のnew演算子に匹敵する動的メモリ確保を可能にするプール。

多くのリアルタイム・オペレーティング・システムは、トランザクション処理機能などのメモリプールを使用する。

解説

これらの実装ではブロック・サイズが可変であるために断片化(英語版)が発生するため、パフォーマンスの点から、リアルタイムシステムでの使用は推奨できない。より効率的な解決策はメモリプール(memory pool)と呼ばれる同じサイズの多数のメモリ・ブロックを事前に割り当てることである。アプリケーションは実行時にハンドル(英語版)で表されるブロックの割り当て、アクセス、および解放ができる。

WebサーバーNginxのような一部のシステムでは、メモリプール という用語は、後で一度に割り当てを解除できる可変サイズの割り当てのグループを指すために使用される。

これはリージョン としても知られており、リージョンベース・メモリ管理(英語版)を参照されたい。

簡易メモリプール実装

簡易メモリプール・モジュールは(たとえば)、コンパイル時にモジュールをデプロイするアプリケーションに最適化されたブロック・サイズで3つのプールを割り当てることができる。

アプリケーションは次のインターフェイスを通じてメモリの割り当て、アクセス、解放を行うことができる:

mallocとの比較

利点

欠点

関連項目

外部リンク

⌬ Phoenix Mesh CID: 未登録 IPFS未登録 📡 0ピア N=1 CRITICAL PQS D31