1 неделю назад
Трёхлетний GitHub issue в Gleam закрыли не новым алгоритмом, а более аккуратной работой с памятью
Giacomo Cavalieri из core team переписал pretty printer на Rust arenas. Раньше каждый вложенный Document заворачивался в отдельный Box и жил отдельной heap allocation. Для рекурсивной структуры это быстро превращается в сотни мелких выделений памяти. Теперь документы кладутся в общую arena, а код передаёт ссылки на них. Результат на реальном Gleam-проекте: * pretty printer: 13ms → 9.8ms * ускорение: 24% * полный gleam format: 13% быстрее * peak memory: 8.4MB → 7.6MB...