返回信息流下边的问题稍微有些乱
首先是内部碎片和外部碎片的定义
internal fragmentation:when memory allocated to a process is larger than requested memory,
the difference between these two numbers is internal fragmentation.
external fragmentation:External fragments exists when total memory space exists to satisfy a request, but it is not continous. storage is broken into little pieces.
malloc和free是对进程的堆进行操作,这样会造成堆内有分散的小内存块,这算不算碎片? 内部碎片or外部碎片?个人感觉这既不属于内部碎片也不属于外部碎片,如果不算碎片的话那malloc/free就和内存碎片没有关系了?
经常进行malloc 和 free操作会不会使内存碎片增加?
用完malloc后的内存马上释放会不会减少碎片?
求大家指导,万谢!!!
这是一条镜像帖。来源:北邮人论坛 / cpp / #94079同步于 2016/11/27
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
内存碎片和malloc/free的关系
byr10086
2016/11/27镜像同步4 回复
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
【 在 nuanyangyang 的大作中提到: 】
: https://bbs.byr.cn/#!article/CPP/90173
把楼扫了一遍,学到不少东西,但好像和我这个问题相关度不是很大啊。。。
这是非移动式内存分配器(比如free-list)的通病,不是malloc/free特有的。C语言没有垃圾回收,不能移动已经分配了的内存,所以不得不采用非移动式的free-list分配器。看看关于垃圾回收相关的东西吧,或者在论坛上搜搜关于free-list的东西。