请解释 malloc 在底层是如何分配和释放内存的,以及其调度机制涉及哪些关键环节?
考察说明
考察对内存分配器底层实现、线程安全及性能权衡的理解
回答思路
- 说明 malloc 基于堆和空闲列表/自由链表的基本管理
- 提及 brk/sbrk 和 mmap 两种系统调用的使用时机
- 区分 glibc 的 ptmalloc2、tcmalloc、jemalloc 等实现差异
- 解释多线程下的加锁、临界区与线程缓存的调度策略
- 讨论内存碎片、合并、分裂和释放策略
考察对内存分配器底层实现、线程安全及性能权衡的理解