BT

Sortie de Ruby 2.1.0 avec livraison d’un nouveau GC

| par Jeff Martin , traduit par Slim Ouertani le 20 févr. 2014. Durée de lecture estimée: 1 minute |

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

Bonjour étranger!

Vous devez créer un compte InfoQ ou cliquez sur pour déposer des commentaires. Mais il y a bien d'autres avantages à s'enregistrer.

Tirez le meilleur d'InfoQ

Donnez-nous votre avis

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet
Commentaires de la Communauté

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet

Discuter

Se connecter à InfoQ pour interagir sur ce qui vous importe le plus.


Récupérer votre mot de passe

Follow

Suivre vos sujets et éditeurs favoris

Bref aperçu des points saillants de lindustrie et sur le site.

Like

More signal, less noise

Créez votre propre flux en choisissant les sujets que vous souhaitez lire et les éditeurs dont vous désirez suivre les nouvelles.

Notifications

Restez à jour

Paramétrez vos notifications et ne ratez pas le contenu qui vous importe

BT