ذاكرة التخزين المؤقت المضمنة في SpiderMonkey: ما هو أبعد من التخزين المؤقت البسيط

2025-09-14

يتناول هذا المنشور بالتفصيل تطبيق ذاكرة التخزين المؤقت المضمنة (IC) داخل محرك JavaScript SpiderMonkey. على عكس ذاكرة التخزين المؤقت التقليدية، فإن IC في SpiderMonkey هي تقنية رمز ذاتية التعديل. يقوم بإدراج سلسلة من الـ stubs في مواقع النداء، واختيار مسارات التنفيذ الفعالة ديناميكيًا بناءً على أنواع الإدخال. تنفذ أول نداء مسارًا احتياطيًا، وتولد stubsًا مقابلة بناءً على النتيجة. تصل النداءات اللاحقة من نفس النوع إلى ذاكرة التخزين المؤقت، مما يحسن الكفاءة بشكل كبير. يستخدم المقال الجمع في JavaScript كمثال لشرح كيفية عمل IC، ويذكر أحدث بنية CacheIR من SpiderMonkey، والتي تُجرد تفاصيل ICs للسماح بالمشاركة بين المُجمِّعات المختلفة.

اقرأ المزيد

تعقب تخصيص الذاكرة في فايرفوكس باستخدام eBPF

2025-05-31

استخدم الكاتب تقنية eBPF (مرشح حزمة بيركلي الموسع) لتعقب تخصيص الذاكرة في SpiderMonkey، محرك جافا سكريبت في فايرفوكس. كان الهدف الأول هو تحديد مواقع المصدر لعمليات إنشاء الكائنات Rooted المتكررة لتحسين إدارة الذاكرة. باستخدام أداة bpftrace ومجسات المستخدم (uprobes)، تمكن الكاتب من تعقب دالة `registerWithRootLists` بنجاح واستخدام دالة ustack للحصول على معلومات عن كومة المكالمات. في النهاية، أنتج الكاتب تقارير ورفع عدة تقارير عن الأخطاء، مما أدى إلى تحسين تخصيص الذاكرة وتقليل عشرات الملايين من المكالمات إلى `registerWithRootLists`.

اقرأ المزيد
التطوير