Некоторые языки, например Java, ввели GC с низкой паузой.
Эти GC могут сделать большую часть работы, не останавливая весь мир. Это, очевидно, довольно сложная проблема, потому что она требует анализа памяти, когда поток ее модифицирует, что приводит к получению данных, которые можно использовать в начале процесса, и не больше, когда он завершается, или к данным, которые кажутся ненужными, а потому, что ссылка была перенесена в память и никогда не появлялась там, где смотрел ГК.
Так в принципе, что за алгоритм (ы) за этим?
Исследовательские работы или действительно техническая ссылка на статью будут рассматриваться как правильный ответ, так как эта тема действительно техническая.