Hacker News Digest

16 ноября 2025 г. в 13:25 • dubroy.com • ⭐ 153 • 💬 54

OriginalHN

#java#garbage-collection#reference-counting#tracing-garbage-collection#incremental-parsing#prosemirror#ohm

Garbage collection is useful

Автор, имеющий опыт работы с сборкой мусора в J9 Java VM, применяет эти знания для решения проблемы инкрементального парсинга текста. Он работает с командой, использующей Ohm для парсинга документов и ProseMirror для отображения форматированного текста с двунаправленными обновлениями. Изначально реализованное решение отслеживало все узлы после каждого редактирования, что противоречило принципу инкрементальности для больших документов с небольшими изменениями.

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