アリーナアロケータ
大きなメモリブロックを1つ確保し、ポインタを前に進めて切り出していき、最後にまとめて一気に解放する割り当て方式。個別のfreeは存在しない。
割り当ては3命令ほどで済む。空きリストやロックを抱えた汎用のメモリマネージャーを呼ぶ必要がなく、連続して作ったオブジェクトが物理的にも連続して並ぶので、キャッシュにも優しい。寿命がはっきりした処理に向く。コンパイラは構文木全体を1つのアリーナに置き、フェーズが終われば捨てられる。Webサーバーなら、リクエストごとにアリーナを持たせ、応答時にリセットできる。
向かないのは寿命が異なるオブジェクトだ。アリーナ全体を解放するまでメモリは再利用されないため、長生きするオブジェクトが1つあるだけで、ほかのすべてが生き残ってしまう。デストラクタは別途扱う必要があり、型付き言語ではアリーナ内のすべてのオブジェクトが同じ寿命に結びつくので、それが関数のシグネチャにも現れる。