C++ STL(四)分配器(讲的很过一阵子内存管理这门课补一补吧)

本人从事在线教育c++十年工作经验现在精心整理了一套从小白到项目实践开发各种学习资料如果你想学想加入我们请关注我在私信回复“编程”就可以领取学习资料!!!

C++ STL(四)分配器(讲的很过一阵子内存管理这门课补一补吧)

分析各种IDE中allocator的实现

vc

缺点:调用operator new 的获取内存,每次都是获取一点点内存,这样会有很多的额外开销

C++ STL(四)分配器(讲的很过一阵子内存管理这门课补一补吧)

C++ STL(四)分配器(讲的很过一阵子内存管理这门课补一补吧)

C++ STL(四)分配器(讲的很过一阵子内存管理这门课补一补吧)

发现:这三个IDE都是通过malloc和free来分配内存,因此会带来大量的额外开销。

C++ STL(四)分配器(讲的很过一阵子内存管理这门课补一补吧)

真正好的分配器——alloc

目的:尽量减少malloc次数

额外开销主要在cookie上面,所以alloc的cookie数量少很多

C++ STL(四)分配器(讲的很过一阵子内存管理这门课补一补吧)

C++ STL(四)分配器(讲的很过一阵子内存管理这门课补一补吧)

但是G4.9废弃了alloc

alloc改名变成了_pool_alloc

C++ STL(四)分配器(讲的很过一阵子内存管理这门课补一补吧)

G4.9版的allocator又换回了会产生很多cookie的那种

C++ STL(四)分配器(讲的很过一阵子内存管理这门课补一补吧)

C++ STL(四)分配器(讲的很过一阵子内存管理这门课补一补吧)

本人从事在线教育c++十年工作经验现在精心整理了一套从小白到项目实践开发各种学习资料如果你想学想加入我们请关注我在私信回复“编程”就可以领取学习资料!!!

相关推荐