我的 STL 容器中的内存使用量预计是不稳定的——也就是说它会经常收缩和增长。我正在考虑通过为 STL 容器类型声明指定分配器来解决此问题。我知道池分配器旨在处理这种类型的情况,但我担心波动性将超过池的考虑,为了克服它,我必须进行大量测试以确定良好的池指标。
我理想的分配器永远不会隐式释放内存,事实上,如果内存只在分配器销毁时才被释放,那是完全可以接受的。显式释放未使用内存的成员函数会很好,但不是必需的。我知道我所指的听起来像是一个每个对象的分配器,这违反了标准。我宁愿坚持标准,但如果我不能在其中解决这个问题,我会放弃它。
我不太关心初始性能,而更关心平均性能。换句话说,一次分配单个元素还是其中的一个元素池无关紧要,而所述分配是否导致对 new/malloc 的调用更重要。我编写自己的分配器没有问题,但是有谁知道实现这一点的预先存在的分配器?如果它有所作为,这将适用于连续的内存容器(例如向量、双端队列),尽管一个通用的解决方案会很好。