Панель слоёв Figma: меньше вычислений и кэш с линейным расходом памяти
В инженерном разборе панели слоёв команда Figma показывает, почему отрисовки только видимых строк недостаточно: прежний код всё равно собирал данные для всех раскрытых узлов, хотя на экране обычно видны 20–30 строк.
Сбор разделили на два прохода: сначала получают порядок строк, затем вычисляют имена, значки и состояния только для видимых. Кэш учитывает зависимости между узлами, поэтому изменение ветки требует пересчёта лишь затронутых частей дерева.
Отдельный раздел посвящён памяти: вместо копий списков потомков кэш хранит общие части по ссылкам. Расход растёт линейно с числом узлов, ценой дополнительных переходов по указателям. Для разработчиков сложных списков это повод проверить и объём вычислений, и устройство кэша.
#производительность #архитектура
Post #3064
142
