上一篇讲了 ptmalloc 在初始化的过程中做的一些准备工作 主要是内存的申请,这里主要是基于初始化的数据格式对内存进行分配、回收管理。重点是 各种 bin的使用,其如同缓存 减少程序频繁的内存申请操作 对内核的调用(毕竟需要且到内核态执行代码)。
阅读全文glibc中的malloc方法其实是映射到 __libc_malloc
的,其通过ASM的符号表的形式来实现
1 | strong_alias (__libc_malloc, __malloc) strong_alias (__libc_malloc, malloc) |
malloc 属于应用层的内存管理软件,malloc的实现代码有多个,其中glibc中的实现使用的是 ptmalloc
这个是最早的实现了,后面的实现是基于ptmalloc
来实现,分析 ptmalloc
的源码有助于对malloc算法的理解