Débloquer les performances de Ruby Ractor : élimination de la contention des variables de classe

2025-05-28

Cet article explore un goulot d’étranglement des performances dans les Ractors de Ruby lors de la gestion des variables d’instance de classe. Le verrouillage global de l’interpréteur entraîne une dégradation significative des performances lorsque plusieurs Ractors accèdent concurremment à ces variables. L’auteur analyse méticuleusement l’implémentation sous-jacente des variables d’instance de classe et propose une solution utilisant la délégation d’objets pour éliminer la contention de verrouillage, ce qui entraîne une amélioration des performances de près de trois fois dans les micro-benchmarks. Cette solution corrige également de manière inattendue un bogue et une régression de performances introduits par la nouvelle fonctionnalité Espace de noms.

Développement