cch123 / blog_comment

comments of xargin.com
8 stars 0 forks source link

Go 语言的 GC 实现分析 #249

Open utterances-bot opened 2 years ago

utterances-bot commented 2 years ago

Go 语言的 GC 实现分析

http://xargin.com/p/3ec16b3c-d312-455f-be61-1cb6825744b6/

rfyiamcool commented 2 years ago

在我看来这是全网最好的gc文章了吧.

cch123 commented 2 years ago

在我看来这是全网最好的gc文章了吧.

还有些细节没写呢。。云老师

lryong commented 2 years ago

感谢曹大精彩分享!想提个小建议:文中的GC动图前进的速度太快了,看了好几遍都没看清楚文字和捋清楚流程。不知道能否有个控制动图的播放组件;或者播放速度放慢些~

cch123 commented 2 years ago

感谢曹大精彩分享!想提个小建议:文中的GC动图前进的速度太快了,看了好几遍都没看清楚文字和捋清楚流程。不知道能否有个控制动图的播放组件;或者播放速度放慢些~

这个里面的动图原来是做在 figma 里面的,去极客平台发布的时候没法内嵌 figma 链接,你看看这篇里面的,https://go.xargin.com/docs/runtime/memory_management/garbage_collection/,应该大部分都有

tangxi666 commented 2 years ago

混合写屏障要解决插入写屏障的那个问题,是需要使新创建的对象都为黑色吧?

cch123 commented 2 years ago

混合写屏障要解决插入写屏障的那个问题,是需要使新创建的对象都为黑色吧?

混合是把断开的和新的都变灰了,插入是只把新指向的变灰

weiwenhao commented 1 year ago

pageAlloc 是以一个 arena 大小(64MBit)像操作系统申请虚拟内存,归还的时候则是以连续几个 page (8Kib)为单位归还给操作系统,那如果每个 arena 都有几个占用的 pages 没有释放,那会不会让虚拟内存只能通过不断增大才能申请到 64MBit 的空间,最后超过虚拟内存的地址上限的问题呢?

cch123 commented 1 year ago

pageAlloc 是以一个 arena 大小(64MBit)像操作系统申请虚拟内存,归还的时候则是以连续几个 page (8Kib)为单位归还给操作系统,那如果每个 arena 都有几个占用的 pages 没有释放,那会不会让虚拟内存只能通过不断增大才能申请到 64MBit 的空间,最后超过虚拟内存的地址上限的问题呢?

我印象中 64 位系统的地址空间是 2 ^ 48,你可以算算是多少 T,应该是不太可能突破的。。