OffsetAllocator

処理時間が一定で断片化が少ない高速なオフセットアロケーター。ゲームやグラフィックスなど、安定した割り当て速度が必要なリアルタイム用途向けです。

Xで共有ライセンス: MIT

概要

OffsetAllocatorは、メモリのポインタではなく範囲内のオフセットを割り当てるC++のアロケータで、すべての操作が定数時間で終わります。8ビット浮動小数点の刻みで並べた256個のビンと、次の空きビンを探す二段のビットフィールドを使います。無駄になる領域は最大12.5%で、2のべき乗のビンでは最大100%になるのに比べて抑えられます。管理情報は別に持つため、GPUヒープ、バッファ、配列の分割割り当てに使えます。

主な特長

  • O(1)の割り当てと解放でハードリアルタイム向け
  • 浮動小数点の刻みによる256個のビン
  • 無駄は最大12.5%、平均6.25%
  • 管理情報は対象リソースと別に保持
  • 連続範囲の先頭オフセットを返す

こんな人・用途に

GPUバッファなどを分割して割り当てるとき、処理時間を予測可能にしたいゲームやグラフィックスの開発者向けです。管理するのはオフセットで、メモリ自体ではありません。

アップストリーム
sebbbi/OffsetAllocator
GitHubのフォーク
Guo-astro/OffsetAllocator
アップストリームのスター数
1.1k
カテゴリ
開発者ツールとインフラ
ライセンス
MIT
フォーク日
2025-10-24
同期状態
同期済み最終同期 2026-09-29