我不熟悉追踪源代码,找出C++标准分配器的GCC STL实现(C++),我也找不到任何简短的解释、文档和技术报告来描述GCC选择的内存模型。
我猜GCC使用了几个固定大小的桶来存储相同大小的小对象(以字节为单位),并为特定大小的大对象分配大内存空间。
GCC为C++标准分配器选择的具体内存模型是什么?
发布于 2018-01-30 17:14:13
我找不到任何简短的解释、文档和技术报告来描述GCC选择的内存模型。
读代码。它是开源的,它作为纯文本包含在编译器中。
如果您不确定标准标头在哪里,可以做以下两件事中的一件:
std::allocator
不能做的事
#包括int (){ std::allocator a;a.allocate(&a);返回0;}
给出
错误..。包含于\ /usr/include/x86_64-linux-gnu/c++/6/bits/c++allocator.h:33:0,的文件中当您发现std::allocator
只是使用堆进行所有这些决策时,您可以查看glibc源 for malloc
。
发布于 2018-01-30 17:12:17
std::allocator
只使用operator new
和operator delete
,而这些只是包装malloc
和free
。
因此,该实现被委托给C库,不管使用中的是哪种。
https://stackoverflow.com/questions/48526796
复制相似问题