الأداء

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

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

تنفيذ Protobuf

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

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

وضع تشغيل أداة الترجمة الفورية بلغة PHP

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

إصدار PHP

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

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

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

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

مثال

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

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

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

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

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

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

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

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

OPcache هو الحل الأكثر استخدامًا ويتوفّر تلقائيًا.

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

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

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

التسجيل

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

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

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

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

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

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

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