TGViewer
Rust Rust @rust_code · 8.91K subscribers
Post #1342 4.74K
Трёхлетний 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

Дополнительный бонус: arena позволила кэшировать и переиспользовать частые документы вроде ключевых слов, запятых и скобок. То, что раньше аллоцировалось снова и снова, теперь создаётся один раз.

Хороший пример, где производительность упирается в скучные мелкие allocation costs.

Особенно в рекурсивных структурах, где один Box выглядит безобидно, пока их не становится слишком много.

https://giacomocavalieri.me/writing/gleam-rust-arenas

#RustLang #Performance #Gleam
  • 🔥 26
  • ❤ 11
  • 👍 5
More from @rust_code
  1. Sep 20, 2026Zero cost
  2. Sep 19, 2026🦀 NVIDIA официально идёт в native GPU programming на Rust Теперь CUDA Rust позволяет писа…
  3. Sep 18, 2026yagni
  4. Sep 17, 2026🦀 Rust Pinning без магии: `Pin`, `Unpin` и `Future::poll` Одна из самых сложных тем в Rus…
  5. Sep 17, 2026Участвуй во всероссийском ИТ-чемпионате МТС True Tech Champ 2026 c призовой фондом 10 250…
  6. Sep 17, 2026photo post
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →