鄢 涛, 于 曦, 刘永红, 赵卫东, 余 悦, 曾 谊
(1.成都大学 信息科学与工程学院, 四川 成都 610106;2.成都大学 模式识别与智能信息处理四川省高校重点实验室, 四川 成都 610106)
基于C++的高效内存池的设计与实现
鄢 涛1,2, 于 曦1,2, 刘永红1,2, 赵卫东1,2, 余 悦1, 曾 谊1
(1.成都大学 信息科学与工程学院, 四川 成都 610106;2.成都大学 模式识别与智能信息处理四川省高校重点实验室, 四川 成都 610106)
为了高效、安全地利用计算机内存资源,在大型的软件设计中,往往要进行大量的内存分配与回收操作,为此,C++专门提供了malloc等相关函数进行操作,这些函数能够满足一般的使用,但由于它们调用了操作系统API,所以实际使用时会在操作系统中产生大量的内存碎片,让内存分配成为效率瓶颈,从而降低系统性能.基于此,通过对循环首次适应算法进行改进,设计并实现了基于C++的高效内存池,大幅提升了内存分配与回收的效率.同时,还为内存池编写了相关的分配子,使其能与C++标准库无缝对接,提供了若干具有垃圾回收功能的智能指针,提高了内存管理与程序运行的效率.
内存池;内存分配;循环首次适应算法;高效策略
大型的计算机软件应用中,往往需要进行大量的内存分配与回收工作,这些工作可以通过各种内存分配函数来完成,比如C语言的malloc.但由于操作系统在分配内存时,需要进行大量的查找工作,所以使用如malloc来分配内存实际上是比较低效的.不仅如此,由于分配算法本身的问题,多次……