الأداء

تعمل مكتبة برامج PHP على تسهيل التفاعلات مع Google Ads API بأقل عملية إعداد من جانبك. ومع ذلك، يعتمد الأداء بشكلٍ كبير على كيفية استخدام المكتبة ودمجها.

تنطبق معظم أفضل الممارسات على جميع اللغات. ويتناول هذا الدليل تلك الخاصة بلغة PHP.

تنفيذ Protobuf

تُستخدم Protobuf بواسطة gRPC وGoogle Ads API لرسائل الطلبات والاستجابة. يتوفر تطبيقان، على الرغم من أن التنفيذ المكتوب بلغة C يتميز بأداء أفضل.

راجِع دليل Protobuf للحصول على مزيد من المعلومات.

وضع تشغيل مترجم لغة PHP

لغة PHP هي لغة نصوص برمجية متعددة الاستخدامات ولها العديد من أوضاع التشغيل حسب الاستخدام. تتمتع لغة PHP (واجهة البوابة المشتركة) بمزايا ملحوظة لأنها قد تشارك الموارد بين عمليات التنفيذ.

إصدار PHP

من الممارسات الجيدة الترقية إلى إصدار أحدث من لغة PHP بشكل منتظم إذ يؤدي ذلك عادةً إلى تحقيق أداء أفضل بشكل عام. قائمة إصدارات PHP المتوافقة.

إصدارات Google Ads API غير المستخدَمة

تتوافق جميع إصدارات مكتبة العملاء مع إصدارات Google Ads API المتعددة. تتوفّر حزم مخصّصة للإصدار لكلّ إصدار من إصدارات Google Ads API المتوافق مع مكتبة البرامج.

يمكن إزالة الحِزم المخصّصة لإصدارات Google Ads API غير المستخدَمة بأمان من مكتبة العملاء. نظرًا لأنه قد يكون من المفيد تسريع التنفيذ أو تقليل بصمة الذاكرة، توفر مكتبة العملاء أدوات مساعدة للقيام بذلك آليًا.

مثال

لنفترض أنّك تنفّذ مكتبة برامج تستخدم أحدث إصدار من واجهة برمجة التطبيقات: v16 فقط، وتريد إلغاء إتاحة إصدارات واجهة برمجة التطبيقات غير المستخدمة: v15 وv14.

في ملف composer.json من المشروع، حدد نص Composer (مسمى remove-google-ads-api-version-support) يستفيد من الأداة التي توفّرها مكتبة البرامج، في الصف ApiVersionSupport:

"scripts": {
  "remove-google-ads-api-version-support": [
    "Google\\Ads\\GoogleAds\\Util\\ApiVersionSupport::remove"
  ]
}

بعد ذلك، استخدم Composer Script مع أرقام الإصدار كمعلَمات واطبع بعض رسائل الحالة:

# 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 Google Ads API versions.
echo "# Supported Google Ads API versions:"
find ./vendor/googleads/google-ads-php/src/Google/Ads/GoogleAds/V* -maxdepth 0 | grep -o '..$'
echo "# Vendor folder size:"
du -sh ./vendor

# Use the Composer script to remove the unused versions v14 and v15 of the Google Ads API.
echo "# Removing support..."
composer run-script remove-google-ads-api-version-support -- 14 15

# Output the vendor folder size and the list of Google Ads API versions that are
# supported after removing support for Google Ads API versions.
echo "# Supported Google Ads API versions:"
find ./vendor/googleads/google-ads-php/src/Google/Ads/GoogleAds/V* -maxdepth 0 | grep -o '..$'
echo "# Vendor folder size:"
du -sh ./vendor

يشير ناتج تنفيذ النموذج أدناه إلى تقليل حجم الملف بمقدار 50 ميغابايت، والإصدار المتوافق الوحيد المتبقي هو V16:

# Supported Google Ads API versions:
V14
V15
V16
# Vendor folder size:
110M    ./vendor
# Removing support...
> Google\Ads\GoogleAds\Util\ApiVersionSupport::remove
Removing support for the version 14 of Google Ads API...
Done
Removing support for the version 15 of Google Ads API...
Done
# Supported Google Ads API versions:
V16
# Vendor folder size:
60M     ./vendor

التطوير مقابل الإنتاج

لغة PHP هي لغة مفسَّرة حيث تجمع التعليمات أولاً قبل تنفيذها. عادةً ما يكون هذا مفيدًا لأنه أثناء وقت التطوير، غالبًا ما تتغير المصادر بينما لا يكون وقت التنفيذ أمرًا بالغ الأهمية. ومع ذلك، العكس صحيح في وقت الإنتاج، لأن الاستقرار والأداء يصبحان المخاوف الرئيسية.

ذاكرة التخزين المؤقت

يُعد التخزين المؤقت أمرًا شائعًا ويُنصح به بشدة لأنه يعمل على تحسين الأداء وزيادة الثبات من خلال تخزين تعليمات النصوص البرمجية المجمّعة مسبقًا.

يُعد OPcache الحل الأكثر استخدامًا ويتوفّر افتراضيًا.

إضافة الأموال تلقائيًا

وتُعدّ ميزة التحميل التلقائي شائعة، لأنّها تحسّن الأداء وتزيد الثبات من خلال تحميل المعلومات المجمّعة مسبقًا حول الفئات.

تتوافق مكتبة برامج PHP مع PSR-4 للتحميل التلقائي، كما تقدّم التعريف كجزء من ملف composer.json. ويمكن بعد ذلك استخدام الخيارات المخصصة لـ Composer، مثل --optimize-autoloader أو --classmap-authoritative على سبيل المثال، وطريقة أخرى.

التسجيل

إنّ ضبط أدوات التسجيل على مستوى عالٍ مثل ERROR يمكن أن يساعد في تقليل مقدار النفقات العامة لوقت التنفيذ واستهلاك الذاكرة.

يمكنك الاطّلاع على دليل التسجيل للحصول على مزيد من المعلومات.

تصحيح الأخطاء وإنشاء المواصفات

ننصحك بإيقاف أدوات تصحيح الأخطاء والمحلِّل لأنّها عادةً ما ترافقها بعض الوقت المستغرق في التنفيذ.

التحميل المسبق

منذ الإصدار 7.4 من لغة PHP، يمكن استخدام التحميل المسبق لـ OPcache لتحميل النصوص البرمجية مسبقًا في الذاكرة، وهو ما يتفوق على التخزين المؤقت العادي.

يجب تصميم النص للاستفادة من هذه الميزة، لكن مكتبة عميل PHP لا تفعل ذلك نظرًا لعدم وجود طريقة عامة لتنفيذ التحميل المسبق لـ OPcache، وأن المفاضلة بين استخدام الذاكرة وكسب الأداء محددة للغاية لمشروع معين وتنفيذه.