C++11 内存分配器的开销

C++11 内存分配器的开销,c++11,C++11,我一直在创建一个临时对象堆栈——主要是为了使用基于堆的STL结构,它实际上只有临时的生命周期,但也有任何其他临时的动态大小的分配。一个堆栈执行所有类型-存储在展开的链表中 我是一个整齐划一的人。我可以使用的std::alignment\u获得对齐,但这并不是很好,因为我需要下一个要分配的类型的对齐。现在,我只是以16的倍数任意调整每个对象的大小,据我所知,这是任何x86或x64类型的最大对齐。但是现在,每个对象有两个指针的内存开销,以及在向量中分配它们的成本,加上将每个大小取整为16的倍数的成本

我一直在创建一个临时对象堆栈——主要是为了使用基于堆的STL结构,它实际上只有临时的生命周期,但也有任何其他临时的动态大小的分配。一个堆栈执行所有类型-存储在展开的链表中

我是一个整齐划一的人。我可以使用的
std::alignment\u获得对齐,但这并不是很好,因为我需要下一个要分配的类型的对齐。现在,我只是以16的倍数任意调整每个对象的大小,据我所知,这是任何x86或x64类型的最大对齐。但是现在,每个对象有两个指针的内存开销,以及在向量中分配它们的成本,加上将每个大小取整为16的倍数的成本

从好的方面来说,建设和破坏是快速和可靠的


这与常规操作员新建/删除相比如何?我可以运行什么样的测试套件?我对我目前的进展非常满意,不想以后发现它被某种令人讨厌的微妙方式窃听,所以任何关于测试操作的建议都会很好。

这并不能真正回答您的问题,但Boost最近在最新版本中添加了一个库

它可能并不完全是你想要的,但有一个彻底的,可能会引发一个想法?如果文档还不够,那么总是有源代码