性能btw.堆栈堆动态数组

Ahm*_*gle 3 programming-languages memory-management

在编程语言概念中,

Sebesta的书指出(第九版,284):

固定堆动态数组的缺点是它们需要更长的时间从堆栈分配数组.

我们怎样才能分析这个陈述?固定堆动态和堆动态数组之间有什么区别.这个固定词代表什么?

Meh*_*ari 6

从堆栈中分配内存非常简单.你只需要调整堆栈指针.在x64上,它是一条指令:

sub rsp, size
Run Code Online (Sandbox Code Playgroud)

堆分配需要一些内存管理机制来查找足以容纳数组的块,选择块,将其标记为在某处分配,并可能要求操作系统通过增加进程的地址空间来分配更多内存页.它比基于堆栈的分配复杂得多.

重新"修复",因为我没有这本书,我不知道它正在使用那个词.可能这意味着数组在分配后不会在堆中移动.