単純なインクリメントヒープアロケータを単純な圧縮デフラグツールと組み合わせて使用する、自己最適化メモリマネージャを作成しようとしています。
大まかなスキームは、最下位のメモリアドレスから上に向かってブロックを割り当て、最上位のメモリアドレスから下に向かって簿記情報を保持することです。
メモリマネージャはスマートポインタを返します-ブーストのintrusive_ptrは、実際のメモリブロックを指し、ブロックを簡単に移動できるように間接レベルを与える簿記構造体にとって最も明白なようです。
デフラグツールは、「生成」ブックマークからヒープを圧縮してプロセスを高速化し、一度に一定量のメモリのみをデフラグします。ブロック自体への生のポインタは、次のデフラグパスまで有効であるため、パフォーマンスが向上するまで自由に渡すことができます。
このための特定のアプリケーションはコンソールゲームプログラミングであるため、各フレームの最初または最後にデフラグパスを比較的安全に実行できます。
ですから、私の質問は、この種の割り当てスキームをSTLと組み合わせて使用した人がいるのではないかと思いますが、STLを完全に破壊してしまうのではないかと思います。std :: list <intrusive_ptr>がintrusive_ptrレベルで機能しているのを見ることができますが、stlリストノード自体の割り当てについては、next / prevポインターをオーバーライドして、intrusive_ptr自体にするか、またはこのより動的なものと並んで標準的なヒープアロケータ。