一个易于使用且高效的内存池分配器,使用 C++ 编写。
此仓库不再维护。========== 我已经不再使用 C++ 编程或遵循标准,因此未来不会更新此仓库。 多年来,只出现了少数次小问题(参见 问题列表),因此我认为 MemoryPool 稳定,仍然是您自行实现的良好起点。 或者,您可以随时使用众多的 分支。
这是一个内存池分配器的模板类实现,使用非常简单,每次分配/释放时的开销极低,速度极快。提供的类大部分符合 C++ 标准库,但也有一些例外(详情请参阅 C++ 兼容性 章节)。本库使用可变参数模板来实现完美的参数转发和一些其他优化,因此需要 C++11 特性。此外,还提供了 C++98 版本,但 C++11 版本的内存管理更好。
什么是内存池 -------------------------- 在 C/C++ 中,通常会使用 malloc 或 new 来进行动态内存管理。这些函数运行速度较慢,并且附带了一些内存开销。如果您只调用几次并请求大量内存,这并不是问题。但是,如果需要存储许多小对象,时间和内存开销可能会使高性能程序无法接受。这就是内存池的作用。内存池以大块分配内存,并将内存分割为较小的片段。每次请求内存时,都会返回其中一个小块,而不需要调用操作系统或堆分配器。只有在事先知道对象大小的情况下,才能使用内存池,但如果您这样做,内存池具有许多优势:
malloc 或 new 要快得多暂无开放 Issues,或尚未同步最近议题。