【内存池】C++ 内存池

  C/C++下内存管理是让几乎每一个程序员头疼的问题,分配足够的内存、追踪内存的分配、在不需要的时候释放内存——这个任务相当复杂。

malloc/free、new/delete的缺点

   1.调用malloc/new,系统需要根据“最先匹配”、“最优匹配”或其他算法在内存空闲块表中查找一块空闲内存,调用free/delete,系统可能需要合并空闲内存块,这些会产生额外开销;
    2.频繁使用时会产生大量内存碎片,从而降低程序运行效率;
    3.容易造成内存泄漏;

 

内存池的优点


       内存池(memory pool)是代替直接调用malloc/free、new/delete进行内存管理的常用方法,当我们申请内存空间时,首先到我们的内存池中查找合适的内存块,而不是直接向操作系统申请,优势在于:
    1.比malloc/free进行内存申请/释放的方式快;
    2.不会产生或很少产生堆碎片;

    3.可避免内存泄漏;

原文链接:https://blog.csdn.net/caoyan_12727/article/details/52081679

posted on 2022-10-04 01:26  bdy  阅读(132)  评论(0编辑  收藏  举报

导航