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 |

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.

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

Contenu Éducatif

Rien ne serait possible sans le soutien et la confiance de nos Sponsors Fondateurs:

AppDynamics   CloudBees   Microsoft   Zenika
Feedback Général
Bugs
Publicité
Éditorial
InfoQ.com et tous les contenus sont copyright © 2006-2014 C4Media Inc. InfoQ.com est hébergé chez Contegix, le meilleur ISP avec lequel nous ayons travaillé.
Politique de confidentialité
BT