After 3 months of coding weekends, my attempt to create a relocating nonblocking garbage collector in C++ has failed. It works in theory, but in practice the read barrier is pervasive and costly, and the threading invariants are incredibly tricky to maintain.
-
-
Would it be reasonable to have per-thread counts to avoid atomics?
-
You can give each object an index, and maintain indexed reference counts per thread, so 4B * 32 threads = 128B per object overhead that must be scanned every GC cycle. That’s a lot of overhead though.
- 1 more reply
New conversation -
-
-
I did always wish for more granularity with arc, being able to pin an object to a thread seems like an obvious feature
-
The downside to garbage collection is lumpy throughput, a lack of control and complexity of managing constrained resources
End of conversation
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.