في تطوير النظام على نطاق واسع، تعد ذاكرة التخزين المؤقت أمرًا بالغ الأهمية بلا شك في عالم PHP، على الرغم من عدم وجود العديد من حلول ذاكرة التخزين المؤقت للاختيار من بينها كما هو الحال في Java، لا تزال هناك بعض الحلول الناضجة، من "برمجة PHP المتقدمة" تعلمت ما يلي:
1. التحسين على مستوى اللغة: تحتوي PHP على العديد من واجهات برمجة التطبيقات على مستوى المحرك، ومن خلال واجهات برمجة التطبيقات هذه، يمكن تغيير سلوك تنفيذ المحرك لتحقيق غرض تحسين التشغيل. من بينها، الشيء الأكثر أهمية هو تخزين نتائج التجميع مؤقتًا. كما نعلم جميعًا، في كل مرة يتم فيها تنفيذ لغة PHP، فإنها تحتاج إلى المرور عبر عملية التعليمات البرمجية المصدر -> التجميع -> التعليمات البرمجية المتوسطة -> تنفيذ المحرك. بالنسبة لبعض التطبيقات الكبيرة، يتم قضاء قدر كبير من الوقت في التجميع غير المفيد (وليس فقط PHP الذي يصل إلى الصفحة) تحتاج الملفات إلى المرور عبر عملية التجميع عند استخدام require() و include() في البرنامج النصي، يجب تجميع بعض الملفات المضمنة. من خلال التخزين المؤقت لنتائج التجميع، يمكن تحسين أداء النظام بشكل كبير (بما يتناسب مع تعقيد النظام وحجمه).
الأدوات الثلاثة الرئيسية في عالم PHP والتي يمكنها تنفيذ ذاكرة التخزين المؤقت للترجمة هي:
Zend Accelerator — ذاكرة تخزين مؤقت تجارية مغلقة المصدر ومقابل تكلفة من إنتاج شركة Zend Industries
مسرع ionCube—مخزن مؤقت تجاري مغلق المصدر ولكنه مجاني كتبه نيك ليندريدج ووزعته شركته ionCube
APC - ذاكرة تخزين مؤقت مجانية ومفتوحة المصدر للمترجم كتبها دانيال كوجيل وجورج شلوسناجل.
طريقة تثبيت APC، يتم تضمين APC في PECL، التثبيت المحدد هو كما يلي 190-823 190-802:
بعدتشغيل الأمر
#pear install apc
، في php.ini أضف:
الامتداد = /path/to/apc.so
إلى الملفبهذه الطريقة، يكتمل التثبيت عند تشغيل php في المرة القادمة، سيتم تنشيط APC تلقائيًا وسيتم تخزين نتائج التجميع مؤقتًا في الملف المشترك في المرة التالية التي يتم فيها تنفيذ ذلك، احصل على نتائج التحرير مباشرة من الذاكرة وقم بتنفيذها دون تجميعها مرة أخرى.
سؤال: هل يمكن لـ APC إعادة ترجمة PHP التي تغيرت منذ آخر تجميع تلقائيًا؟
2. تحسين كود PHP: استخدم بعض الأدوات لإنشاء كود وسيط عالي الجودة بعد التجميع، التفاصيل هي كما يلي:
Zend Optimizer هو مُحسِّن مغلق المصدر ولكنه متاح مجانًا.
يحتوي مسرع ionCube على مُحسِّن متكامل.
مُحسِّن إثبات المفهوم في PEAR
الوظائف الرئيسية للمُحسِّن:
1. إزالة التعليمات البرمجية غير المفيدة، مثل التعليمات البرمجية الميتة التي لن يتم تنفيذها أبدًا.
2. حساب الثوابت، على سبيل المثال، تغيير $ثانية_في_يوم = 24*60*60 مباشرة إلى $ثانية_في_يوم = 86400;
3.سيتم تحسين
وظائف تحسين التعليمات البرمجية الأخرى، مثل هذه العبارة:
$count++;
التنفيذ أسرع. بالطبع، إذا كانت العبارة $i = $count++; فلن يتم إجراء أي تحسين