
glibc源码阅读
文章平均质量分 62
zero_lee
这个作者很懒,什么都没留下…
展开
-
ptmalloc代码浅析3
malloc_consolidate函数是将fast bins中所有链表中相邻空闲chunk合并之后放入到unsorted chunk链表中。注意fd/bk是用来获取前后空闲chunk的指针域,而要获取前后相邻chunk,需要借助宏next_chunk/prev_chunk。 /* If max_fast is 0, we know that av hasn't yet原创 2012-08-14 16:11:35 · 1735 阅读 · 1 评论 -
glibc ptmalloc中的宏操作
glibc ptmalloc很有意思的宏操作:1.MORECORE/* Definition for getting more memory from the OS. */#define MORECORE (*__morecore)#define MORECORE_FAILURE 0void * __default_morecore (ptrdiff_t);voi原创 2012-08-14 15:59:50 · 1428 阅读 · 0 评论 -
ptmalloc代码浅析1
ptmalloc实现分析:1. 在ptmalloc中,并没有定义malloc函数,而是定义了__libc_malloc(size_t nbytes);这样操作是为了不同平台。相应的free函数是__libc_free(void* mem);2. __libc_malloc函数void*__libc_malloc(size_t bytes){ mstate ar_ptr; //原创 2012-08-14 16:08:53 · 3568 阅读 · 1 评论 -
ptmalloc代码浅析2(small bin/large bin结构图)
ptmalloc中的small bin和large bin维护着不同结构的chunk链表:1. 每个small bin维护着一个双向循环链表,而且chunk size都相同。当allocate memory时,总是从链表尾端unlink一个chunk,deallocate memory时,将那个chunk link到链表头。属于FILO规则,每个chunk都有机会被分配到app。原创 2012-08-14 16:09:54 · 5081 阅读 · 0 评论