HipHop VM لمطوري PHP

الكثير من الناس تنتقد PHP ولكن الكثير يعلم أن فيسبوك مازال يستخدم لغة PHP ومن أجل معالجة مشكلة البطئ قام فريق من مطوري الشركة ببناء مترجم سريع جداً في البداية أطلق عليه HPHPc ولكن يبدو أنه كان يعاني من بعض المشاكل ولذلك قامت الشركة بتطوير ألة إفتراضية تعمل كمزود ينفذ PHP بسرعة كبيرة وبدون إستهلاك موارد كثيرة.

وللعلم فقد قام فيسبوك بالتحول إلى إستخدام HipHop VM في بداية 2013.

https://www.facebook.com/no...
يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

19

فكرة HHVM انه يحول الكود من PHP إلى ++C (يتم عمل كومبايل لملفات البي اتش بي). بالطريقة هذه انت فعلياً لا تحتاج لمفسر PHP لتنفيذ الكود، لان الكود اساساً اصبح ++C ، وهنا سر السرعة التي يوفرها HHVM لا شيء اخر ، كون ملفات الكود اصبح ++C وتم عمل كومبايل له هذا يعني ان الملفات اصبحت غير قابلة للقراءة وعلى سبيل المثال لو تم الاختراق لن يستطيع المخترق معرفة السورس كود للبرنامج (يعني نقدر نقول فكرة بديلة لمشفرات zend, ioncube)

مميزات النظام

  • تحويل الكود من PHP إلى ++C وبهذا نستفاد من سرعة ++C في المعالجة والتنفيذ.

  • كون ان الكود سوف يتحول من PHP إلى ++C هذا يعني تحويل الالية بالكامل Interpreted language to compiled language.

  • الكود سوف يصبح مشفر وهو بديل لمشفرات zend, ioncube.

  • يدعم ابونتو وسنتوس x86_64

  • الكثير أكد انه متوافق مع Wordpress، هذه ميزة حقيقة وردبريس مع وجود ضغط عالي من الزوار تستهلك الكثير من الموارد، اقصد PHP Handler.

عيوب النظام

  • غير متوافق مع الكثير من البرامج الموجودة بالسوق حالياً (اقصد الجاهزة المجانية او المدفوعة)، فيسبوك برمجة النظام ليعمل مع كود فيسبوك ، عليك ان تجرب ان كان سوف يعمل مع برنامجك ام لا!.

  • مازال حديث جداً للاعتماد عليه بشكل حقيقي، الكثير من PHP Extensions غير مدعمة بعد.

  • الكثير من عدم التوافقية مع Zend.

  • عملية التربل شوتنج فيه صعبة، اذا ماعندك خبرة كبيرة بلينكس و PHP ابتعد عنه تجنباً للصداع.

  • اذا عندك برنامج فيه ملفات مشفرة لن يعمل البرنامج لازم يكون اوبن سورس.

  • Built-in Web-Server سيء في التعامل مع الستاتك لازم تحط ويب سيرفر بمثابة Front-end افضل شيء يكون NGINX وتجعل NGINX يحول اي ترافك خاص بملفات البي اتش بي على HHVM as a Back-end.

  • يوجد مشاكل بالتعامل مع الرام، ممكن تشوف الكثير من الرام قيد الاستهلاك بشكل وهمي غير حقيقي.

ملاحظة: النظام هذا في الحقيقة ليس باثبات على ان PHP سريعة وتتعامل مع الطلبات الكثيرة بشكل جيد، لان النظام هذا يقوم بتحويل الكود إلى ++C بعيد عن PHP ويبدأ البرنامج بالعمل على اساس انه برنامج ++C ، اذا الي يحصل ان فيسبوك تقوم بكتابة البرنامج بلغة PHP ثم تقوم بمعالجة البرنامج على انه ++C للإستفادة من سرعة ++C كـ Compiled Language. طبعاً عملية تحويل الكود بالكامل للغة اخرى امر مكلف جداً خصوصاً مع برنامج او نظام ان صح التعبير مثل فيسبوك.

انت ممكن تسوي شيء اخر، فرضاً انت عندك سستم كبير بحجم فيسبوك ومستخدم PHP وتريد تستفاد من سرعة C أو ++C برمج بعض المهام المعقدة المتعلقة بل Back-end كـ PHP Extensions بلغة C او ++C وباقي برنامجك وخاصة Front-end خليه PHP مع إستخدام op-code cache مثل APC. سوف تحصل على نتيجة أفضل من حيث Stability و Usability.

لا اعتقد حقيقة ان هناك من سيحتاج مثل هذه التقنية، هي رائعة ولا شك، ولكن لا يوجد موقع بحجم فيسبوك من حيث المشاركين والزوار والعمليات.

شكرا لك

أغلب البرمجيات لن تلاحظ الفرق في الأداء عند استخدامها HipHop والسبب أن المؤثر الأكبر على الأداء هو التعامل مع الكاش وقواعد البيانات و سرعة الخوارزميات المكتوبة ...

بعد تجاوز هذه المشكلات والوصول إلى حالة مثالية

يمكن الحديث عن سرعة التنفيذ.

طبعاً في حالة فيسبوك كل الأمور قد وصلت إلى حالة مثالية (تقريباً ) باستثناء ترجمة و تنفيذ الأكواد ، فبدأ البحث في هذا الإطار.

أيضاً أذكر أن فيسبوك غيرت نظام قواعد البيانات سابقاً ، ونحن نعلم أن أغلب الوقت في البرمجيات التقليدية يضيع في التعامل مع قاعدة البيانات.