4 ms·
There are a number of solutions. One of the simplest ones (popularized by the JVM) is card marking [1], where each memory page (usually shorter than an actual O
by rbehrends 10y ago
There are a number of solutions. One of the simplest ones (popularized by the JVM) is card marking [1], where each memory page (usually shorter than an actual OS page) has a byte associated with it that is set to a non-zero value when a pointer in that segment is written. Because that change is an idempotent operation, it can be done without coordination between threads.
[1] http://blog.ragozin.info/2011/06/understanding-gc-pauses-in-jvm-hotspots.html http://blog.ragozin.info/2011/06/understanding-gc-pauses-in-...