tiancaiamao
深入解析Go

Updated 3 years ago

g10guang (@g10guang) started discussion #26

2 years ago · 0 comments

Open

每次执行函数调用时Go的runtime都会进行检测,若当前栈的大小不够用,则会触发“中断”,从当前函数进入到Go的运行时库,Go的运行时库会保存此时的函数上下文环境,然后分配一个新的足够大的栈空间,将旧栈的内容拷贝到新栈中,并做一些设置,使得当函数恢复运行时,函数会在新分配的栈中继续执行,仿佛整个过程都没发生过一样,这个函数会觉得自己使用的是一块大小“无限”的栈空间。

连续栈 (Edit this file)

这样如果经过多次分配、复制这么消耗性能。重新分配的空间大小有没有什么规律,类似 slice 或者 map 的扩容?

No description provided.

No comments on this discussion.


to join this conversation on GitBook. Already have an account? Sign in to comment
Notifications

You’re not receiving notifications from this thread.


1 participant