Garbage collection is useful
Автор, имеющий опыт работы с сборкой мусора в J9 Java VM, применяет эти знания для решения проблемы инкрементального парсинга текста. Он работает с командой, использующей Ohm для парсинга документов и ProseMirror для отображения форматированного текста с двунаправленными обновлениями. Изначально реализованное решение отслеживало все узлы после каждого редактирования, что противоречило принципу инкрементальности для больших документов с небольшими изменениями.
Решение пришло из статьи "A Unified Theory of Garbage Collection", которая показала, что трассировка и подсчёт ссылок по сути являются дуальными подходами - один работает с живыми объектами ("материя"), другой с мёртвыми ("антиматерия"). Автор внедрил подсчёт ссылок для узлов документа, позволяющий эффективно находить только те узлы, которые не были повторно использованы после редактирования, без необходимости посещения большинства узлов в документе.