1 Star 0 Fork 0

huyi / TechCPP

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
在C++中,用堆和用栈谁更快一点?.md 773 Bytes
一键复制 编辑 原始数据 按行查看 历史
葛昆仑 提交于 2024-01-27 02:33 . update: 6 articles

在C++中,栈分配通常比堆分配要快。

  • 栈分配非常快。分配内存仅仅是涉及到移动栈指针的操作。由于栈是线性且连续的内存区域,增加或减少栈空间只需要调整栈顶指针的位置,与栈相比,堆分配通常较慢。分配堆内存需要在堆的数据结构中寻找足够大的空闲块,可能还需要添加新的内存页到进程空间。这个过程可能涉及到复杂的内存管理算法,如空闲列表(free lists)、二叉堆等,并且还需要处理碎片化问题。
  • 栈上的数据通常具有更好的缓存局部性。因为栈是连续分配的,最近分配的变量很可能在CPU缓存中,而堆上的对象可能分布在内存的不同地方,导致缓存命中率降低。
1
https://gitee.com/hylhm/TechCPP.git
git@gitee.com:hylhm/TechCPP.git
hylhm
TechCPP
TechCPP
master

搜索帮助