عند برمجة تطبيقات عالية الأداء مثل ألعاب الفيديو، يبحث المطورون عن حيل لكتابة شيفرة سريعة تحقق أقصى استفادة من الموارد المحدودة. تخصيص الذاكرة بالغ التهمة بالنسبة للكود الحرج الأداء الذي يتطلب ذاكرة متغيرة. "مخصص الbump" أو مخصص المكدس يحسن ذلك من خلال اعتبار التخصيص كإضافة عدد صحيح بسيطة والتخليز كإسناد عدد صحيح أرخص بكثير. حوالي عام 2010، بينما كنت تعمل في Surreal Software على المشروع الملغى "This is Vegas"، واجه برمجيات الرسوم المتحركة تخصيصات مؤقتة متكررة لدمج الصور المتحركة. هذه التخصيصات ظهرت فقط لفترة قصيرة في كل إطار وكانت تعتمد على أي شخصيات كانت نشطة، والتي يتم تحديدها بواسطة منظور الكاميرا. ظهر المخصص كنقطة ساخنة في التحليل الأدائي. الحل شمل تنفيذ مخصص مكدس حيث أن التخصيص هو مجرد إضافة عدد صحيح، وتحرير الذاكرة هو إسناد عدد صحيح واحد. من خلال تخصيص كتلة ثابتة (على سبيل المثال، 1MB) والحفاظ على متغير "tos" (أعلى المكدس)، أصبحت إدارة الذاكرة تقريباً فورية. النتيجة كانت تحسيناً كبيراً في الأداء، مع زمن تخصيص قابل للقياس في المحللات. قيود رئيسي واحد هو أن هذا المخصص لا يستدعي تلقائياً المهدمين؛ بينما يمكن لـ placement new التعامل مع المنشئين، فإن إدارة المهدمين يدوياً وعرضة للأخطاء. علاوة على ذلك، يتفوق مخصصات المكدس في بيئات متعددة الخيوط إذا كان متغير "tos" يستخدم الجمع الذري، مما يسمح لعدة خيوط بتخصيص من المجموعة نفسها، مفيد في مواقف وحدة المعالجة المركزية fork/join أو خوارزميات GPU. كما يمكن أيضاً إجراء تحرير جزئي، عن طريق تذكر حالة "tos" في بداية العمليات المتكررة وإعادتها عند الانتهاء. تقدم هذه التقنية تحسينات سرعة كبيرة للاحتياجات المؤقتة للذاكرة خلال إطار لعبة.
المصدر: Hacker News · لخّصه HeadlinesBriefing