gpt4 book ai didi

go - 为什么要在堆上存储指针语义的值?

转载 作者:数据小太阳 更新时间:2023-10-29 03:42:12 25 4
gpt4 key购买 nike

William Kennedy(go in action 的作者)说,在 go 中,有两种语义。存储在堆栈上的值语义意味着我们在跨越这些程序边界时正在制作值的副本。存储在堆上的指针语义意味着我们在跨越程序边界时共享值。垃圾收集器有时会启动以回收堆上未使用的内存。我想知道为什么指针语义的值存储在堆上。你能解释一下吗?

最佳答案

任何时候在函数栈帧范围之外共享一个值,它都会被放置(或分配)在堆上。发现这些情况并在程序中保持一定程度的完整性是逃逸分析算法的工作。完整性在于确保对任何值的访问始终准确、一致且高效。

引用:https://www.ardanlabs.com/blog/2017/05/language-mechanics-on-escape-analysis.html

关于go - 为什么要在堆上存储指针语义的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49663509/

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