gc标记 使用yuasa时 函数中初始化的堆上的数据是灰色么
来源:1-13 Go 语言的内存管理与垃圾回收
慕尼黑2207807
2021-07-05 17:55:31
如果运行在栈上允许添加barrier,并采用yuasa的写barrier设计 那么,在函数内的b := make([]int,1000000) 因为这个b太大会逃逸到堆上,那么这个b初始化灰色的么?
1回答
Xargin
2021-07-05
yuasa 是在指针发生删除行为的时候才标灰,你这里的应该是栈上指针直接指向堆(没有指针的删除操作)。所以应该是不涉及 yuasa 的 barrier(因为你说允许栈上加 barrier,那这个也应该算是 dijistra insertion barrier)
现在的 gc 设计,gc 开始之后,所有新创建的堆对象都是黑色的
相似问题