is the GC available for data allocated on any thread?
-
-
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 -
Replying to @TimSweeneyEpic @pkhuong
where and how would you place the roots?
1 reply 0 retweets 0 likes -
In my case, box<t> is the type of managed references (like shared_ptr<t>, but GC instead of ARC). There are two types of memory, and the GC treats them differently. References living in unmanaged memory like the stack or C++ heap are roots.
1 reply 0 retweets 3 likes -
References in managed memory are not roots. They are tracked by the GC and are only treated as live when the object they reside in is live.
1 reply 0 retweets 3 likes
The technique for tracking where references live is awesomely brute-force. There's 128TB of address space, so I virtually allocate 32TB of uncommitted memory for tags, with one byte tag for each 8 bytes of address space. I then catch page faults in tag memory, commit, and track.
-
-
Replying to @TimSweeneyEpic @pkhuong
how far away is your solution from a public release?
1 reply 0 retweets 0 likes -
catching page faults to do some work has been an idea i've tossed around a long time ago, more as a joke. happy to hear it actually works.
1 reply 0 retweets 1 like - 2 more replies
New conversation -
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.