IT用語集 › プログラミング › オブジェクトプール

オブジェクトプール

プログラミング Svenska → 更新: 2026-10-24
詳細情報
作成者
Mark Russinovich
提供元
Microsoft
公開年
種類
仮想デスクトップ
公式サイト

あらかじめ確保したオブジェクトの集合を使い回し、生成と破棄を繰り返さないことで、確保コストとGCによる停止を避ける手法である。

ゲームでは弾、パーティクル、敵、ダメージ表示など、短命なオブジェクトが大量に生まれては消える。そのたびにヒープへ確保すると時間がかかり、メモリも断片化する。ガベージコレクションのある言語ではGCが走った瞬間にフレームが止まり、目に見えるカクつきになる。オブジェクトプールは最初にまとめて確保しておき、空いているインスタンスを貸し出し、「破棄」は単に空きの印を付け直すだけで済ませる。

このパターンはRobert Nystromの『Game Programming Patterns』に「Object Pool」として載っており、Unityのプロジェクトではほぼ必須である。代償として、プールの最大数を見積もる必要があり、再利用時の初期化を丁寧に行わなければならず、返却されなかったインスタンスは二度と戻らない。データを密に詰めてキャッシュ効率を稼ぐECSとは相性がよい。

← 用語集に戻る