تسهّل مكتبة برامج PHP التفاعلات مع Google Ads API بأقل قدر من الإعدادات من جانبك. ومع ذلك، يعتمد الأداء بشكل كبير على كيفية استخدام المكتبة ودمجها.
تنطبق معظم أفضل الممارسات العامة على جميع اللغات. يتناول هذا الدليل تحسينات الأداء الخاصة بلغة PHP.
عمليات تنفيذ Protobuf وgRPC
يتم استخدام Protobuf من خلال gRPC وGoogle Ads API لرسائل الطلبات والردود. تتوفّر عمليتا تنفيذ (PHP خالص وإضافة C)، وتوفّر إضافات C لكل من protobuf وgrpc أداءً أفضل بكثير في ما يتعلّق بالتسلسل والشبكة.
لمزيد من المعلومات، يُرجى الاطّلاع على دليل Protobuf ودليل النقل.
وضع تشغيل مترجم PHP
PHP هي لغة برمجة نصية متعددة الاستخدامات ولها عدة أوضاع تشغيل حسب الاستخدام. PHP-FPM (FastCGI Process Manager) or persistent application servers have a notable advantage over standard CGI because persistent worker processes can reuse cached bytecode (through OPcache) and resources across requests.
إصدار PHP
ننصحك بالترقية بانتظام إلى إصدار أحدث من PHP للاستفادة من تحسينات الأداء في وقت التشغيل. اطّلِع على قائمة إصدارات PHP المتوافقة.
إصدارات Google Ads API غير المستخدَمة
تتوافق جميع إصدارات مكتبة العميل مع إصدارات متعددة من Google Ads API. لكل إصدار من Google Ads API متوافق مع مكتبة العميل، تتوفّر حزم مخصّصة لذلك الإصدار.
يمكن إزالة الحِزم المخصّصة لإصدارات Google Ads API التي لا يستخدمها تطبيقك بأمان من مكتبة العميل. لتقليل استهلاك الذاكرة وتسريع التنفيذ، توفّر مكتبة العميل أداة مساعدة لإزالة إصدارات واجهة برمجة التطبيقات غير المستخدَمة آليًا.
مثال
لنفترض أنّك تنفّذ تطبيق عميل يستخدم فقط أحدث إصدار من واجهة برمجة التطبيقات (v26)، وتريد إزالة إمكانية استخدام إصدارات واجهة برمجة التطبيقات غير المستخدَمة (v23 وv24 وv25).
في ملف 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
# v23, v24, and
# v25 of the Google Ads API.
echo "# Removing support..."
composer run-script remove-google-ads-api-version-support -- \
23 \
24 \
25
# 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
يعرض نموذج الإخراج التالي لعملية التنفيذ تقليل حجم الملف، مع بقاء الإصدار V26 فقط كالإصدار الوحيد المتوافق:
# Supported Google Ads API versions:
V23
V24
V25
V26
# Vendor folder size:
135M ./vendor
# Removing support...
> Google\Ads\GoogleAds\Util\ApiVersionSupport::remove
Removing support for the version 23 of Google Ads API...
Done
Removing support for the version 24 of Google Ads API...
Done
Removing support for the version 25 of Google Ads API...
Done
# Supported Google Ads API versions:
V26
# 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 نصًا برمجيًا عامًا للتحميل المُسبَق لأنّ المفاضلة بين استخدام الذاكرة وتحسين الأداء تختلف حسب كل مشروع وبيئة نشر.