تسهّل مكتبة برامج PHP التفاعلات مع Google Ads API بأقل قدر من الإعداد من جانبك. ومع ذلك، يعتمد الأداء بشكل كبير على طريقة استخدام المكتبة ودمجها.
تنطبق معظم أفضل الممارسات العامة على جميع اللغات. يتناول هذا الدليل تحسينات الأداء الخاصة بلغة PHP.
عمليات تنفيذ Protobuf وgRPC
يتم استخدام Protobuf من خلال gRPC وGoogle Ads API لرسائل الطلبات والردود. يتوفّر تنفيذان (PHP النقي وامتداد C)، ويوفّر امتداد C لكل من protobuf وgrpc أداءً أفضل بكثير في التسلسل والشبكة.
لمزيد من المعلومات، يُرجى الاطّلاع على دليل Protobuf ودليل النقل.
وضع تشغيل مترجم PHP
PHP هي لغة برمجة نصية متعددة الاستخدامات، وتتضمّن عدة أوضاع تشغيل حسب الاستخدام. تتميّز PHP-FPM (مدير عمليات FastCGI) أو خوادم التطبيقات الدائمة بميزة ملحوظة مقارنةً بواجهة المدخل المشتركة العادية، لأنّ عمليات المنفِّذ الدائمة يمكنها إعادة استخدام رمز البايت المخزّن مؤقتًا (من خلال OPcache) والموارد في الطلبات.
إصدار PHP
ننصحك بالترقية بانتظام إلى إصدار أحدث من PHP للاستفادة من التحسينات على مستوى أداء وقت التشغيل. اطّلِع على قائمة إصدارات PHP المتوافقة.
إصدارات Google Ads API غير المستخدَمة
تتوافق جميع إصدارات مكتبة البرامج مع إصدارات متعددة من Google Ads API. لكل إصدار من Google Ads API متوافق مع مكتبة البرنامج، تتوفّر حِزم مخصّصة لهذا الإصدار.
يمكن إزالة الحِزم المخصّصة لإصدارات Google Ads API التي لا يستخدمها تطبيقك من مكتبة العميل بأمان. لتقليل حجم الذاكرة وتسريع التنفيذ، توفّر مكتبة العميل أداة لإزالة إصدارات واجهة برمجة التطبيقات غير المستخدَمة آليًا.
مثال
لنفترض أنّك بصدد تنفيذ تطبيق عميل يستخدم أحدث إصدار من واجهة برمجة التطبيقات (v25) فقط، وتريد إزالة إمكانية استخدام إصدارات واجهة برمجة التطبيقات غير المستخدَمة (v22 وv23 وv24).
في ملف composer.json الخاص بمشروعك، حدِّد نص Composer (باسم remove-google-ads-api-version-support) يستفيد من الأداة المتاحة في مكتبة البرامج في ApiVersionSupport:
"scripts": {
"remove-google-ads-api-version-support": [
"Google\\Ads\\GoogleAds\\Util\\ApiVersionSupport::remove"
]
}
بعد ذلك، شغِّل نص Composer البرمجي مع أرقام الإصدارات كمعلَمات واطبع رسائل الحالة:
# Change the current directory to the project directory.
cd /path/to/the/project
# Install the project.
composer install
# Output the vendor folder size and the list of Google Ads API versions that are
# supported before removing support for unused Google Ads API versions.
echo "# Supported Google Ads API versions:"
find ./vendor/googleads/google-ads-php/src/Google/Ads/GoogleAds/V* \
-maxdepth 0 | grep -oE 'V[0-9]+$'
echo "# Vendor folder size:"
du -sh ./vendor
# Use the Composer script to remove the unused versions
# v22, v23, and
# v24 of the Google Ads API.
echo "# Removing support..."
composer run-script remove-google-ads-api-version-support -- \
22 \
23 \
24
# Output the vendor folder size and the list of Google Ads API versions that are
# supported after removing support for unused Google Ads API versions.
echo "# Supported Google Ads API versions:"
find ./vendor/googleads/google-ads-php/src/Google/Ads/GoogleAds/V* \
-maxdepth 0 | grep -oE 'V[0-9]+$'
echo "# Vendor folder size:"
du -sh ./vendor
تعرض عيّنة مخرجات التنفيذ التالية انخفاض حجم الملف، مع
V25 كالإصدار الوحيد المتبقي المتوافق:
# Supported Google Ads API versions:
V22
V23
V24
V25
# Vendor folder size:
135M ./vendor
# Removing support...
> Google\Ads\GoogleAds\Util\ApiVersionSupport::remove
Removing support for the version 22 of Google Ads API...
Done
Removing support for the version 23 of Google Ads API...
Done
Removing support for the version 24 of Google Ads API...
Done
# Supported Google Ads API versions:
V25
# Vendor folder size:
60M ./vendor
مقارنة بين التطوير والإنتاج
PHP هي لغة مفسَّرة تجمع التعليمات قبل تنفيذها. ويكون ذلك مفيدًا أثناء عملية التطوير، عندما تتغير ملفات المصدر بشكل متكرر ويكون وقت التنفيذ أقل أهمية. في بيئات الإنتاج، يصبح الثبات والأداء هما الشاغلان الأساسيان.
ذاكرة التخزين المؤقت
ننصح باستخدام التخزين المؤقت لأنّه يحسّن الأداء ويزيد الثبات من خلال تخزين رمز بايت للبرامج النصية المجمَّعة مسبقًا في الذاكرة المشتركة.
OPcache هو الحلّ العادي ويتم تضمينه مع PHP تلقائيًا.
إضافة الأموال تلقائيًا
تعمل ميزة التحميل التلقائي على تحسين الأداء والثبات من خلال تحميل معلومات خريطة الفئات المجمَّعة مسبقًا.
تتوافق مكتبة برامج PHP مع PSR-4 للتحميل التلقائي، وتوفّر التعريف كجزء من ملف composer.json. يمكن بعد ذلك استخدام خيارات Composer CLI المخصّصة، مثل --optimize-autoloader أو --classmap-authoritative، مباشرةً في إصدارات الإنتاج.
التسجيل
يساعد ضبط أدوات تسجيل البيانات على حدّ أعلى، مثل ERROR أو WARNING في بيئة الإنتاج، في تقليل النفقات العامة المتعلقة بالإدخال والإخراج واستهلاك الذاكرة.
لمزيد من المعلومات، اطّلِع على دليل التسجيل.
تصحيح الأخطاء وإنشاء الملفات الشخصية
يجب إيقاف إضافات أدوات تصحيح الأخطاء وأدوات تحليل الأداء (مثل Xdebug) في بيئة الإنتاج لأنّها تفرض تكلفة كبيرة على التنفيذ.
التحميل المسبق
منذ الإصدار 7.4 من PHP، يمكن استخدام التحميل المُسبَق لـ OPcache من أجل تحميل النصوص البرمجية مُسبقًا في الذاكرة عند بدء تشغيل الخادم، ما يمثّل خطوة إضافية مقارنةً بالتخزين المؤقت العادي في OPcache.
يجب تصميم نص برمجي للتحميل المُسبَق خصيصًا لتطبيقك. لا توفّر مكتبة برامج PHP للعملاء نصًا برمجيًا عامًا للتحميل المُسبَق لأنّ المفاضلة بين استخدام الذاكرة وتحسين الأداء تختلف حسب كل مشروع وبيئة نشر.