编程心得 ---- 内存管理

博客分享编程中内存管理心得。编写内存管理程序时,需分配大内存并分成小内存块,快速查找未分配和收回不用的内存块是性能关键。简单用bool数组标记,搜索速度为O(n);用list<int>结构可将搜索速度提升到O(1),还介绍了list相关函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

编程心得 ---- 内存管理

    在编写内存管理方面的程序时,遇到需要分配大块的内存空间,然后将该大内存
空间分成若干等长的小内存块。程序中需要对这些小块进行读写和删除,其中每个小
内存块可以分配给不同的使用者。那么如何快速找到没有分配的内存块以及收回不使
用的内存块是性能瓶颈的关键所在。
    很显然,简单的可以使用bool数组来标记每块小内存块的使用情况,但是在查找
没有分配的内存块时只能通过for循环来依次查找其使用情况。这是很简单的也是很方
便想到的,但是其搜索速度达到了O(n),性能不是很好。
    但是,通过一个list<int>结构就可以解决这个问题。list拥有栈的功能,将未使
用的内存块标号push到list中,使用时只需pop一下即可;回收不使用的内存块时只需
将其标号push到list中去,这样很简单的就可以将搜索速度达到O(1)。

ps: list的一些相关函数
 void push_front(const T&)      //insert a new element at the beginning
 void push_back(const T&)     //insert a new element at the end
 void pop_front(void)                 //remove the first element
 void pop_back(void)                //remove the last element
  reference front()                      //return the first element
  reference back()                     //return the last element

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值