إلغاء قفل أداء Ruby Ractor: القضاء على تنافس متغيرات الفئة

2025-05-28

تتناول هذه المشاركة اختناقًا في الأداء في Ruby's Ractors عند التعامل مع متغيرات مثيل الفئة. يؤدي قفل المُفسِّر العالمي إلى انخفاض كبير في الأداء عندما تصل متغيرات متعددة من Ractors بشكل متزامن إلى هذه المتغيرات. يحلّل الكاتب بعناية التنفيذ الأساسي لمتغيرات مثيل الفئة ويقترح حلًا باستخدام تفويض الكائنات للقضاء على تنافس القفل، مما يؤدي إلى تحسين الأداء بثلاثة أضعاف تقريبًا في اختبارات الأداء الدقيقة. كما يُصلح هذا الحل بشكل غير متوقع خطأ وانحدارًا في الأداء تم إدخالهما بواسطة ميزة مساحة الاسم الجديدة.

التطوير