logoalt Hacker News

Watching Go's new garbage collector move through the heap

100 pointsby matheusmoreiralast Saturday at 7:55 AM7 commentsview on HN

Comments

nomorewordstoday at 7:26 PM

This was very interesting, but the ending was a bit abrupt. I was under the impression that there was something more that I was missing under the subscribe banner.

But to the point of the article - are there cases in which manually moving objects around to compact them in a specific area is done with golang? I don't use golang that much, and I'm sure that there are very strong arguments for not compacting the heap post-GC, but I've always wondered how it avoids crashing in the 0.0001% of cases in which heap is defragmented in such a way that there's no way to allocate a new large object

show 3 replies
owaislonetoday at 7:34 PM

For anyone interested in this - https://www.youtube.com/watch?v=gPJkM95KpKo

okzgntoday at 7:58 PM

Excellent optimization technique: manually copying objects to a new slice so they don't prevent the GC from releasing memory by sitting right in the middle of a page it intends to free.

extra-AItoday at 8:20 PM

But if the objects being scanned are already located on the same page, aren’t we just wasting time managing the page and tracking the objects within it?