Comment by mr_00ff00

3 years ago

a bit flip is not writing?

Also do traces not have to work atomically? The program needs to stop, you can’t have it check roots as it runs.

I’ll admit I am no GC researcher with ph.D experience, but your comment makes it seem you aren’t either.

Tracing is batched up in GC pauses, rather than on every access as with naive RC. It is necessary to stop the world, but the work done in the pause does not need to use atomic operations.

Atomics are handy in a parallel/multi-core tracing collector, but IME pointer chasing in tracing somehow manages to cover the time it takes to do atomic operations.