He and Austin have been distracted by a fact that has changed since the 90s: server tail latency matters so much Go customers are willing to throw away huge amounts of CPU to remove it. Hence generational is low priority, and the focus has been low pause. It's customer driven.
-
-
If you had a properly architected generational GC, you’d sacrifice a *tiny* amount of latency for huge throughput gains. Bump allocation in the nursery is such a huge benefit it’s virtually never worth throwing it away. That’s why Azul’s ultra-low-latency GC is generational.
1 reply 0 retweets 0 likes -
Azul and Baker (who sat a few desks away from me in NYC) have discussed these issues with them. I'm sure you've heard the escape analysis argument, but that's why bump allocation is lower priority. It's still on the list, gri@ complained about it in a dart comparison years ago.
1 reply 0 retweets 0 likes -
Then it sounds like we agree that concurrent generational GC is the way to go!
1 reply 0 retweets 0 likes -
As long as all your global and per-thread pauses are sub-100-microseconds, sure. I don't personally have much need for generational though I agree there are some programs that need it. I certainly don't think Go is broken for putting it off.
2 replies 0 retweets 1 like -
Go isn’t broken for putting it off, but it’s probably not the choice I would have made. Anyway, I wouldn’t have as much of an issue if the blog post announcing Go’s GC didn’t throw shade at “’enterprise’” garbage collectors, as if Go had discovered something new.
2 replies 0 retweets 0 likes -
I just have to point out: that is not at all the argument you started with.
1 reply 0 retweets 0 likes -
Well, I didn’t know Go was planning on generational GC! “golang generational gc” certainly doesn’t bring that up on Google.
1 reply 0 retweets 0 likes -
Replying to @pcwalton @KirinDave
You’re oscillating now. Go’s Gen GC, which for all we know might never get merged, is not relevant to the point I’m making. You started with “this is categorically bad” and ended with “it’s not the choice I would have made, but”
1 reply 0 retweets 0 likes -
Replying to @tqbf @KirinDave
It’s categorically bad if Go refuses to implement generational GC at all. It’s not as bad if generational GC is a work in progress. I still don’t like the fact that the initial blog post seemed to be attacking other GCs (putting ‘enterprise’ in scare quotes even), but whatever.
1 reply 0 retweets 1 like
(My litmus test here is bump allocation in the nursery, BTW.)
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.