gpt4 book ai didi

memory-management - 基于堆栈的内存分配

转载 作者:行者123 更新时间:2023-12-01 04:20:27 27 4
gpt4 key购买 nike

引用Stack Based Memory Allocation ,表示为 “......每个线程都有一个保留的内存区域,称为它的堆栈。当一个函数执行时,它可能会将它的一些状态数据添加到堆栈的顶部;当函数退出时,它负责从堆栈” “...当函数退出时,堆栈上的内存会自动且非常有效地回收”

第一个引用的句子表示当前线程负责,第二个引用的句子表示其自动完成。

问题一:它是自动完成的还是由当前正在运行的线程完成的?

问题二: Stack 中的内存释放是如何发生的?

最佳答案

问题一 :通过自动(并且非常有效)它们意味着只需移动内存指针(从堆栈中切掉顶部),所有使用的内存都会被回收。不需要复杂的垃圾收集。

问题2 :堆栈只是由开始和结束指针分隔的连续内存块。指针之间的所有内容都属于堆栈,结束指针之外的所有内容都被认为是空闲内存。您通过移动结束指针(堆栈顶部)来分配和释放内存。堆上的事情要复杂得多,内存使用是碎片化的。

关于memory-management - 基于堆栈的内存分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2084548/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com