الأداء

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

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

تنفيذ Protobuf

يستخدم gRPC وGoogle Ads API Protobuf لرسائل الطلبات والردود. هناك تطبيقان على الرغم من أن النص المكتوب بالحرف C يحقق أداءً أفضل.

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

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

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

إصدار PHP

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

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

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

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

مثال

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

في ملف 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 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 v16 and v17 of the Google Ads API.
echo "# Removing support..."
composer run-script remove-google-ads-api-version-support -- 16 17

# 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 ميغابايت الإصدار المتوافق الوحيد هو V18:

# Supported Google Ads API versions:
V16
V17
V18
# Vendor folder size:
110M    ./vendor
# Removing support...
> Google\Ads\GoogleAds\Util\ApiVersionSupport::remove
Removing support for the version 16 of Google Ads API...
Done
Removing support for the version 17 of Google Ads API...
Done
# Supported Google Ads API versions:
V18
# Vendor folder size:
60M     ./vendor

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

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

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

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

والدالة OPcache هي الأكثر استخدامًا وهو متوفر بشكل افتراضي.

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

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

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

التسجيل

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

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

تصحيح الأخطاء وتحليل الأداء

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

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

منذ PHP 7.4، يمكن استخدام تحميل OPcache المُسبَق لتحميل النصوص البرمجية مسبقًا في الذاكرة، ما يتجاوز ميزة التجميع العادي.

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