-
-
Replying to @bradfitz
However, Go still has no generational garbage collector with bump allocation.
2 replies 0 retweets 10 likes -
You’ll fix it eventually :)
1 reply 0 retweets 5 likes -
I'm sure you saw it but for others: https://blog.golang.org/ismmkeynote "It isn't that the generational hypothesis isn't true for Go, it's just that the young objects live and die young on the stack. The result is [...] much less effective than you might find in other managed runtime[s]"
2 replies 0 retweets 7 likes -
If this were true then you wouldn’t see so much performance tuning for allocations in Go. There are a lot of cases in which escape analysis falls down (e.g. closures). Go leaves like 100x allocation performance on the table for no real reason.
5 replies 1 retweet 3 likes -
At present, it’s not for no reason. The runtime and standard library take advantage of values having stable addresses. These things could be overcome, but they have their own new associated cost. Having built a bump-alloc-gen-gc with capi before, it’s certainly it’s own beast.
1 reply 0 retweets 2 likes -
Yeah, the JS team went through a multi-year process removing dependencies on stable addresses. The results were a win in the end, but it was certainly a LOT of work. (In my mind that’s the best reason to not do moving GC: it may be too much work for the gain right now.)
2 replies 0 retweets 0 likes -
That being said, there are some really interesting designs that allow for address pinning and the ability to move values.
@tenderlove has been doing great work/research on Ruby for that, my own work using the Immix GC is similar.1 reply 0 retweets 3 likes -
This might nerd-snipe me into doing a POC this summer.
2 replies 0 retweets 5 likes -
lmk if you need pointers. I have heaps!
2 replies 0 retweets 20 likes
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.