Améliorer les performances de Ruby Ractor : résolution du goulot d'étranglement de `object_id`

2025-04-27

Le modèle de concurrence Ractor de Ruby souffre de limitations de performances dues à des verrous globaux. Cet article examine en profondeur un goulot d'étranglement de performances causé par la méthode `object_id`, résultant de choix de conception historiques et d'améliorations de la collecte des ordures. En optimisant l'implémentation de `object_id`, en le stockant directement dans les objets au lieu d'utiliser une recherche dans une table de hachage globale, l'auteur améliore considérablement les performances de Ractor, ce qui entraîne un doublement de la vitesse dans les benchmarks JSON. Bien que des défis subsistent, tels que la gestion des types d'objets spéciaux, ce travail représente une étape cruciale pour rendre les Ractors véritablement parallèles.

Développement