Activa las notificaciones para estar al tanto de lo más nuevo en tecnología.

Ruby 2.1, con mejor recolector de basura

La última versión de Ruby, la 2.1, ha sido ya lanzada. Ahora tiene mejoras en lo que corresponde al recolector de basura. Otras mejoras incluyen...

ruby00
La última versión de Ruby, la 2.1, ha sido ya lanzada. Ahora tiene mejoras en lo que corresponde al recolector de basura. Otras mejoras incluyen soporte para refinamientos, y para nombrar capturas en las rutinas de StringScanner. El soporte para refinamientos se ha mejorado. En las versiones anteriores, se estaba limitado a aplicar refinamientos a un solo archivo de Ruby, pero ahora puede aplicarse dentro de un módulo sin afectar el alcance los niveles superiores del archivo. Esto para muchos es un cambio que da a la controversia y que quizás en las siguientes versiones de Ruby desaparezca, porque genera confusión en el código.

El soporte para capturas con nombre se introdujo en Ruby 1.9, en lo que se refiere a las búsquedas regulares, pero StringScanner no se soportaba hasta esta versión. Las mejoras en la recolección de basura son ahora importantes, pues este procedimiento es mucho más rápido ahora. Los cambios no afectan la recolección de basura, ya que no todos los objetos serán tratados de forma diferente como en esta versión. En lugar de eso, los objetos se clasificarán a través de la máquina virtual (VM) como soleados o sombreados, los objetos soleados  serán manejados por el nuevo recolector de basura generacional.

Hay una buena descripción de los cambios en una serie de diapositivas preparadas por el desarrollador de Rubi, Koichi Sasada, que se usaron en una plática en el RubiKaigi. Los objetos populares como array, string, hash, object y numeric podrán sacar ventaja del nuevo sistema de recolección de basura, lo cual hace que este mecanismo sea ahora mucho más eficiente y rápido.

Referencias:

Introducing Restricted Generational Garbage Collection into CRuby/MRI (pdf)
Lista de cambios en Ruby 2.1.0

Comentarios