خلفية الولادة
مترجم Adobe Flash (ASC، ActionScript Compiler) هو أداء "أمس" للغاية، ولا يزال لدى جهاز Flash الظاهري مجال كبير لتحسين الأداء. غالبًا ما يتم التعامل مع Flash على أنه لعبة أو يُطلق عليه مازحًا خنزير وحدة المعالجة المركزية. بشكل عام، نادرًا ما نقوم بتحسين ملف SWF يدويًا. في معظم الحالات، يمكن تشغيله بشكل جيد، ولكن عندما يكون حجم ملف SWF كبيرًا جدًا، يكون وقت التحميل طويلًا جدًا، أو يكون وقت تنفيذ التعليمات البرمجية طويلًا جدًا، مما يتسبب في الإطار. عندما يكون المعدل منخفضًا، نحتاج إلى التفكير في تحسين SWF، مثل تبسيط التعليمات البرمجية وضغط الموارد الثابتة (الصور ومقاطع الفيديو وما إلى ذلك). ومع ذلك، فإن تحسين الأداء الناتج عن التحسين اليدوي محدود للغاية، ويجب ترك المزيد من مهام التحسين للمترجم. ولحسن الحظ، يمكن لإطار عمل Apparat أن يساعدنا في تحرير أنفسنا من كابوس التحسين اليدوي. ليس هذا فحسب، بل يمكن لأي ملفات SWF مستقبلية أن تفعل ذلك يكون الأمثل منه. يتمتع جوا إيبرت، مؤلف كتاب Apparat، برؤى عميقة في مجال تحسين أداء الفلاش في مؤتمر FlashAndTheCity لهذا العام، وقد فاز عمل جوا المتميز بجائزتين : "مطور Flash الأكثر عبقرية في عام 2010" و"المساهم الأكثر تميزًا في عام 2010". " الجائزة الكبرى.
بناء البيئة
تتم كتابة إطار عمل Apparat من خلال Scale. قبل التدريب عليه، تحتاج إلى تثبيت Scala 2.8.0 وJava 1.6. يعد تثبيت 7-zip أمرًا اختياريًا. بعد إعداد بيئات التشغيل الأساسية هذه (والتي تحتاج إلى إضافتها إلى متغير بيئة PATH)، يمكن تنزيل أحدث حزمة تثبيت (حاليًا 1.0RC8) من Google Code . بعد التحميل قم باستخراجه إلى مجلد جديد والملفات المتضمنة هي:
يوفر Apparat العديد من أدوات سطر الأوامر، مثل tdsi، وstripper، وreducr، وما إلى ذلك، بالإضافة إلى بعض واجهات برمجة تطبيقات ActionScript الخاصة جدًا (الموجودة في ملفات SWC). بعد ذلك، دعونا نلقي نظرة على كيفية قيام Apparat بتسريع Flash.
تحسين البايت كود
الوظيفة الأساسية لـ Apparat هي TAAS (مترجم ActionScript ذو ثلاثة عناوين). لن يغير TAAS أي سطر من ActionScript، ويمكنه الحصول على تحسينات كبيرة في الأداء بمجرد استخدام تقنيات التحسين العادية. يختلف Apparat عن برنامج التحويل البرمجي ASC من Adobe، حيث يقوم بتحليل وإعادة تنظيم وإعادة تجميع ملفات SWF وSWC المجمعة.
يعتمد الكود الثانوي في جهاز Flash الظاهري AVM على المكدس. يصعب تحسين هذا الهيكل. يقوم Apparat أولاً بتحويل الكود الثانوي القائم على المكدس إلى CFG (رسم تدفق التحكم)، ثم يحوله إلى TAC بدون مكدس من خلال CFG (Three رمز العنوان) رمز، أي TAAS (ثلاثة عناوين ActionScript).
باستخدام TAC/TAAS، يمكن إعادة تحسين الكود الثانوي للفلاش بناءً على تقنيات تحسين المترجم، مثل التوسع المضمّن ، ونشر النسخ ، والطي المستمر ، وإزالة التعليمات البرمجية الميتة ، وما إلى ذلك.
يوفر Apparat العديد من ملفات SWC المفيدة مع واجهات برمجة التطبيقات الأكثر كفاءة، ويتضمن أيضًا واجهات برمجة تطبيقات Alchemy التي لم تتوفر بعد في ActionScript. بعد معالجة SWF باستخدام واجهات برمجة التطبيقات هذه بواسطة Apparat، سيتم تحسين كفاءة التنفيذ بشكل كبير. المبدأ هو أن Apparat يقوم بإجراء تحسين مضمن على الكود المقابل. تنسيق الأمر لتحسين البايت كود هو:
tdsi -i input.swf -oput.swf
المصدر: فريق Koubei.com UED