BT

Diffuser les Connaissances et l'Innovation dans le Développement Logiciel d'Entreprise

Contribuez

Sujets

Sélectionner votre région

Accueil InfoQ Actualités Sortie de Ruby 2.1.0 avec livraison d’un nouveau GC

Sortie de Ruby 2.1.0 avec livraison d’un nouveau GC

La version officielle de Ruby 2.1 vient d’être publiée en apportant un certain nombre d’améliorations prévues, y compris de nombreux changements au niveau du ramasse miettes comprenant plusieurs améliorations de performance qui se projettent dans l’avenir.

Le ramasse-miettes de Ruby 2.1 met en œuvre une forme de ramasse-miettes générationnelle, implémentation que Ruby nomme RGenGC ( Restricted Generational Garbage Collection ). Ceci remplace le « Mark & ​​Sweep » utilisé dans les versions précédentes de Ruby. Koichi Sasada, un développeur Ruby, a noté lors d'une de ses présentations faite en Avril 2013, que le défi pour les développeurs Ruby était de mettre en œuvre un algorithme de GC qui pourrait gérer à la fois les objets protégés et les objets non-protégés dans le même tas.

Etant donnée que la réécriture de toutes les C-extensions existantes pour l’utilisation du nouveau GC n'est pas pratique, les Write-Barriers sont utilisés comme partie intégrante de l'implémentation RGenGC. Comme Sasada l’explique dans une présentation (PDF) faite lors du RubyConf 2013, RGenGC offre une troisième voie compte tenu des deux autres alternatives initiales : A) Ne pas mettre en œuvre un GC générationnel (comme dans Ruby 2.0 et précédent) ou B) Mettre en œuvre un GC générationnel à condition que toutes les C-extensions soient réécrites.

L’utilisation de RGenGC offre une grande compatibilité avec les extensions existantes tout en apportant des améliorations de performance. Les objets populaires comme Array, String, Hash, Object, et Numeric sont protégés avec Write-Barrier et par conséquent, capables de profiter du système RGenGC. Les futurs travaux sur les deux bibliothèques, internes et externes, offrent la possibilité de gains de performance additionnels à l'avenir.

Le nouveau système de ramasse-miettes n'est pas la seule amélioration, d'autres incluent RDoc 4.1.0, RubyGems 2.2.0 et plusieurs mises à jour de bibliothèques. Pour une liste complète des changements de la version 2.1, consultez les notes de version qui se trouvent sur la page GitHub du projet.

Evaluer cet article

Pertinence
Style

Contenu Éducatif

BT