Linux内存管理

函数 malloc/calloc/realloc,free

封装得太好,内存对于程序员来说就是一黑箱操作

内存碎片问题很烦

随机的bug大概率跟 内存有关系

如何避免内存碎片的产生?

内存池。

第一个版本,分配的块用链表串起来

分配:找到一个flag=0的块就使用,没有就新建

释放:

第二个版本,解决第一个版本的缺点:内存利用率以及查找性能问题

比链表查找效率高的组件:rbtree,skiplist,btree,hash

根据大小查找 key为内存大小

以下做法buffer出不了while循环

以下做法会出现大量的1k 内存块

解决以上问题,需要引入大块拆成大块,小块拆成大块的做法