هل لغة php بطيئة؟


19

نعم اللغة بطيئة لعدة أسباب. لكنها ليست هي عنق الزجاجة. ما معنى هذا الكلام؟ معنى هذا الكلام أن الإنتقال إلى لغة أخرى لن يحل مشكلتك. لندع الأرقام تتكلم.

لنقل أن لدينا تطبيق ويب مكتوب بلغة php يرد ب 50 ميلي-ثانية وآخر يؤدي نفس الوظيفة يرد بنصف ميلي ثانية. هذا يعني أن بايثون أسرع من php ب 100 مرة! لكن هل توفير 45.5 ميلي-ثانية من ال 10 الثواني التي ينتظرها المستخدم يفرق في شيء!!

إن هناك الكثير من الوقت يضيع في استعلامات mysql لكن أغلب الوقت يضيع على المتصفح مثلا

  • ملفات js تعيق إخراج الصفحة (الصواب أن توضع في ذيل متن الصفحة وليس في أولها)

  • أن تطلب ملفات js بالتوازي async non-render blocking

  • أن تجمع ملفات js في ملف واحد وأن تجمع ملفات css في ملف واحد لتوفير عدد الطلبات

  • إن كانت الأيقونات قليلة توضع base64 في css أو في sprite

  • تصضغير وضغط الملفات سابقة الذكر

  • أن تخبر المتصف أن يحتفظ بها عنده ولا يطلبها (ولا حتى يتأكد من عدم تغيرها) وهو ما يعرف باسم public caching

  • يمكنك أن تذهب أبعد من ذلك كأن تستخدم js في القولبة وترييح الخادم.

هناك أشياء لا يمكن القيام بها في php مثل socket.io وهي مدعومة بعدة بغات ليس من بينها php. تستخدم socket.io في عمل اتصال ثنائي الإتجاه يتم فيه تبادل الرسائل أو الأحداث وهذا يستخدم لعمل تطبيقات محادثة (أو أي شيء جماعي يشبه تطبيق trello) خفيفة وسريعة لأن بديل ذلك هو الإستعلام الدوري للخادم كل نصف ثانية مثلا وهذا مكلف (هل لدي رسائل جديدة؟ لا طيب هل لدي رسائل جديدة؟ لا طيب ...).

ماذا تقصد بال 10 الثواني التي ينتظرها المستخدم؟

استخدم YSlow من ياهو أو PageSpeed من غوغل وستجد أن الكثير من المواقع العربية صفحاتها تحتاج من 5 إلى 10 ثواني حتى تكتمل أو تصبح قابلة للتفاعل Ready مع أن الخادم يرد خلال أقل من ثانية