If garbage collection could be achieved with no pauses with a runtime cost that’s a constant fraction of overall CPU time, how much would you be willing to pay for it? 5%? 25%?
-
-
could there be a dedicated CPU core for it? if not, then i suppose smaller is always better; could also be adaptive rate: use 5% or higher, as much as is left over for the current frame.
1 reply 0 retweets 0 likes -
Replying to @paniq @TimSweeneyEpic and
but constant runtime cost is good thinking. that makes it much easier to reason about it, and we don't get sudden stalls.
1 reply 0 retweets 0 likes -
Replying to @paniq @TimSweeneyEpic and
is the GC available for data allocated on any thread?
1 reply 0 retweets 0 likes -
All threads, all GC overhead being amortized across threads or in negligibly small timeslices.
1 reply 0 retweets 2 likes -
i do like this kind of footprint.
1 reply 0 retweets 0 likes -
Replying to @paniq
Semi random Q: How would you feel about an allocator that intentionally slowed down threads that allocate too many GB/s in order to bound pause times?
1 reply 0 retweets 0 likes -
Replying to @pkhuong
sounds like a heuristic that is difficult to understand in practice. e.g. most allocations happen when a level is loaded, and nobody needs artificial stalls in that scenario.
2 replies 0 retweets 1 like -
i would rather leave allocation bandwidth to profiling.
1 reply 0 retweets 0 likes -
Once we abandon stop-the-world GC, there are some nice choices available. You can have a dedicated GC thread, but it's impossible to guarantee it can keep up with the garbage created by other threads. So you really need the ability for thread that allocate to help with GC.
4 replies 2 retweets 9 likes
The timeslice for GC assistance can be arbitrarily small. The critical requirement for keeping memory allocation bounded is: on average, the all threads have to free abandoned objects at least as fast as they abandon objects.
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.