new/malloc的底层是如何实现的?用了哪些系统调用?
考察说明
考察内存分配器的分层原理、系统调用边界及实现细节
回答思路
- 说明malloc通过glibc的ptmalloc维护堆内存,new调用operator new后调用malloc
- 指出分配小块内存时从空闲链表或桶中分配,大块或空闲不足时调用brk或mmap扩展堆
- 区分brk和mmap的适用场景:小内存扩展堆、大块或释放后归还用mmap
- 提及系统调用只是申请虚拟内存,实际物理内存按需分配,并考虑粒度对齐、锁和线程安全
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。