在 C/C++ 中,内存管理是一个非常棘手的问题,我们在编写一个程序的时候几乎不可避免的要遇到内存的分配逻辑,这时候随之而来的有这样一些问题:是否有足够的内存可供分配? 分配失败了怎么办? 如何管理自身的内存使用情况? 等等一系列问题。在一个高可用的软件中,如果我们仅仅单纯的向操作系统去申请内存,当出现内存不足时就退出软件,是明显不合理的。正确的思路应该是在内存不足的时,考虑如何管理并优化自身已经使用的内存,这样才能使得软件变得更加可用。本次项目我们将实现一个内存池,并使用一个栈结构来测试我们的内存池提供的分配性能。最终,我们要实现的内存池在栈结构中的性能,要远高于使用
std::allocator
和
std::vector
- C++ 中的内存分配器
std::allocator
- 内存池技术
- 手动实现模板链式栈
- 链式栈和列表栈的性能比较
内存池是池化技术中的一种形式。通常我们在编写程序的时候回使用 new
delete
这些关键字来向操作系统申请内存,而这样造成的后果就是每次申请内存和释