عملکرد

کتابخانه مشتری PHP تعامل با Google Ads API را با حداقل پیکربندی ازطرف شما آسان می‌کند. بااین‌حال، عملکرد به‌طور قابل‌توجهی به نحوه استفاده و ادغام کتابخانه بستگی دارد.

بیشتر روال‌های مطلوب عمومی برای همه زبان‌ها قابل‌اجرا هستند. این راهنما بهینه‌سازی‌های عملکرد مختص PHP را پوشش می‌دهد.

پیاده‌سازی‌های Protobuf و gRPC

gRPC و Google Ads API از Protobuf برای پیام‌های درخواست و پاسخ استفاده می‌کنند. دو پیاده‌سازی دردسترس است (PHP خالص و افزونه C)، و افزونه‌های C برای هر دو protobuf و grpc عملکرد سریال‌سازی و شبکه را به‌طور قابل‌توجهی بهبود می‌بخشند.

برای کسب اطلاعات بیشتر، راهنمای Protobuf و راهنمای انتقال را ببینید.

حالت عملکرد مفسر PHP

‫PHP یک زبان برنامه‌نویسی چندمنظوره است و بسته به کاربرد، چندین حالت عملکرد دارد. PHP-FPM (مدیر فرایند FastCGI) یا کارسازهای برنامه ماندگار نسبت‌به CGI استاندارد مزیت قابل‌توجهی دارند زیرا فرایندهای کارگر ماندگار می‌توانند از بایت‌کد ذخیره‌شده در حافظه نهان (ازطریق OPcache) و منابع در سراسر درخواست‌ها استفاده مجدد کنند.

نسخه PHP

به‌طور منظم به نسخه PHP جدیدتری ارتقا دهید تا از بهبودهای عملکرد زمان اجرا بهره‌مند شوید. فهرست نسخه‌های PHP پشتیبانی‌شده را بررسی کنید.

نسخه‌های استفاده‌نشده Google Ads API

همه نسخه‌های کتابخانه مشتری از چندین نسخه «میانای برنامه‌سازی کاربردی Google Ads» پشتیبانی می‌کنند. برای هر نسخه از Google Ads API که توسط کتابخانه کارخواه پشتیبانی می‌شود، بسته‌های اختصاصی برای آن نسخه وجود دارد.

بسته‌های اختصاص‌داده‌شده به نسخه‌های Google Ads API که توسط برنامه شما استفاده نمی‌شوند را می‌توان به‌طور ایمن از کتابخانه کارخواه حذف کرد. برای کاهش ردپای حافظه و افزایش سرعت اجرا، کتابخانه مشتری ابزاری برای حذف نسخه‌های API استفاده‌نشده به‌صورت برنامه‌نویسی‌شده ارائه می‌دهد.

مثال

فرض کنید می‌خواهید برنامه کلاینتی را پیاده‌سازی کنید که فقط از جدیدترین نسخه API (v26) استفاده می‌کند و می‌خواهید پشتیبانی از نسخه‌های API استفاده‌نشده (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) را در تولید غیرفعال کنید زیرا سربار اجرای قابل‌توجهی ایجاد می‌کنند.

پیش‌بارگیری

از PHP 7.4،‏ پیش‌بار کردن OPcache می‌تواند برای پیش‌بار کردن برنامه‌های نوشتاری در حافظه در زمان راه‌اندازی سرور استفاده شود که یک گام فراتر از ذخیره کردن استاندارد OPcache است.

دستورگان پیش‌بارگذاری باید به‌طور خاص برای برنامه شما طراحی شود. کتابخانه مشتری PHP اسکریپت پیش‌بارگیری عمومی ارائه نمی‌دهد زیرا موازنه بین استفاده از حافظه و بهبود عملکرد برای هر پروژه و محیط استقرار متفاوت است.