Fundamentals of garbage collection by Microsoft
ID: fundamentals-of-garbage-collection-by-microsoft
Primary runtime documentation, “What happens during a garbage collection”: marking identifies live objects, relocation updates references, and compaction moves surviving objects. The same section identifies compiler-reported stack roots, runtime handles and static references as sources used to determine liveness. Used for the reference-management principle, not a claim that every collection moves every object.
New to topics? Read the docs here!