Niektóre języki, na przykład java, wprowadziły GC z małą pauzą.
Ci GC mogą wykonać większość pracy bez zatrzymywania całego świata. Jest to oczywiście dość trudny problem, ponieważ wymaga analizy pamięci, gdy wątek ją modyfikuje, w wyniku czego powstają dane, które można wykorzystać na początku procesu, a nie już po jego zakończeniu, lub dane, które wyglądają jak garaże, ale ponieważ odniesienie zostało przeniesione do pamięci i nigdy nie pojawiło się tam, gdzie patrzył GC.
Zasadniczo, za czym stoi algorytm (algorytmy)?
Artykuły badawcze lub link do naprawdę technicznego artykułu można uznać za prawidłową odpowiedź, ponieważ ten temat jest naprawdę techniczny.
źródło
Powodem tego jest to, że w Javie tylko GC może zwolnić pamięć, która może zawierać odwołania GC. Oznacza to, że tak długo, jak można bezpiecznie odczytywać obiekty w oddzielnym wątku, wystarczy wstrzymać program, aby obserwował odniesienia na stosie.
Sugerowałbym dla mutacji, aby wdrożyli jakąś formę kopiowania na piśmie, aby poinformować GC o zmianie.
źródło