私の STL コンテナのメモリ使用量は変動しやすいと予測されています。つまり、頻繁に縮小したり拡大したりします。STLコンテナの型宣言にアロケータを指定することで、これを説明しようと考えています。プール アロケーターがこの種の状況に対処するためのものであることは理解していますが、私の懸念は、ボラティリティがプールが説明する以上のものになることです。それを克服するには、適切なプール メトリックを決定するために多くのテストを行う必要があります。
私の理想的なアロケーターは暗黙のうちに memoryを解放することはありません。実際、アロケーターが破棄されたときにのみメモリが解放される場合は、完全に受け入れられます。未使用のメモリを明示的に解放するメンバー関数は便利ですが、必須ではありません。私が言及しているのは、オブジェクトごとのアロケーターのように聞こえ、これは標準に違反していることを知っています。標準に固執したいのですが、その中でこれを解決できない場合は放棄します。
私は初期のパフォーマンスにはあまり関心がなく、平均的なパフォーマンスに関心があります。別の言い方をすれば、一度に単一の要素またはそれらのプールが割り当てられるかどうかは問題ではなく、その割り当てが new/malloc の呼び出しになるかどうかは重要です。私は自分のアロケータを書くことに問題はありませんが、これを達成する既存のアロケータを知っている人はいますか? それが違いを生む場合、これは連続したメモリ コンテナー (vector、deque など) の場合になりますが、一般化されたソリューションが適しています。