الأداء

تسهّل مكتبة برامج 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، ويكون مقياس الاستفادة من الذاكرة مقابل الأداء مرتبطًا بشكل كبير بمشروع وتنفيذ معيّنَين.