Steigerung der Ruby Ractor-Leistung: Behebung des Engpasses von `object_id`

2025-04-27

Rubys Ractor-Konkurrenzmodell leidet unter Leistungseinbußen aufgrund globaler Sperren. Dieser Beitrag untersucht eingehend einen Leistungseinbruch, der durch die `object_id`-Methode verursacht wird, die auf historischen Designentscheidungen und Verbesserungen der Garbage Collection beruht. Durch die Optimierung der Implementierung von `object_id`, indem sie direkt in Objekten gespeichert wird, anstatt eine globale Hash-Tabellen-Suche zu verwenden, verbessert der Autor die Ractor-Leistung deutlich, was zu einer Verdoppelung der Geschwindigkeit in JSON-Benchmarks führt. Obwohl Herausforderungen bleiben, wie der Umgang mit speziellen Objekttypen, stellt diese Arbeit einen entscheidenden Schritt dar, um Ractors wirklich parallel zu machen.

Entwicklung