面试真题

操作系统 · 简单 · 拼多多

为什么栈的分配速度比堆快?

简单 操作系统 🎤 拼多多
参考答案
结论:栈分配快因仅需移动栈指针,堆需复杂查找与维护。要点:1.栈内存随函数调用自动分配,栈顶指针递减即可,连续无锁;2.堆分配需搜索空闲链表、切分内存、处理碎片,可能调用系统brk/mmap;3.栈无碎片且缓存局部性好,堆易碎片化需GC/合并;4.多线程下栈私有无需同步,堆通常需全局锁或复杂分配器。示例:定义局部变量int a直接入栈,malloc(size)需遍历空闲块。
题目整理自公开面经,答案由校招宝自研生成,仅供参考