Un miembro del equipo principal del lenguaje de programación Gleam, escrito en Rust, ha cerrado un issue abierto hacía tres años que proponía usar arenas de memoria para acelerar el pretty printer del compilador. La solución sustituye las asignaciones con Box por referencias a documentos almacenados en un arena del crate typed_arena, lo que evita repetidas reservas en el heap y permite cachear cientos de pequeños documentos reutilizables, como las palabras clave del lenguaje o las comas que separan los elementos de una lista.
El cambio, materializado en un pull request con +2963/−1032 líneas, obligó a modificar a mano la mayoría de las funciones que construyen el árbol de documentos, ya que ahora necesitan recibir el arena como argumento adicional. El resultado supera las expectativas: el formateador interno pasa de 13 ms a 9,8 ms al dar formato al proyecto real squirrel, una mejora del 24 % en el pretty printer aislado. Sumando el resto del proceso de gleam format (lectura y análisis sintáctico), el comando completo es un 13 % más rápido, y el consumo máximo de memoria cae de 8,4 MB a 7,6 MB.
La experiencia ilustra cómo reducir las asignaciones en el heap puede mejorar tanto la velocidad como el uso de memoria en Rust, y muestra el patrón de arenas como alternativa práctica al uso intensivo de Box. El artículo recomienda además el论文 "Strictly Pretty" para quien desee profundizar en el algoritmo de pretty printing en el que se basa Gleam.
