عملکرد

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

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

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

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

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

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

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

نسخه PHP

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

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

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

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

مثال

فرض کنید درحال پیاده‌سازی برنامه کارخواهی هستید که فقط از جدیدترین نسخه میانای برنامه‌سازی کاربردی (v26) استفاده می‌کند و می‌خواهید پشتیبانی از نسخه‌های میانای برنامه‌سازی کاربردی استفاده‌نشده (v23، v24، و v25) را بردارید.

در فایل composer.json پروژه‌تان، یک Composer script (به‌نام 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 اسکریپت پیش‌بارگذاری عمومی ارائه نمی‌دهد زیرا موازنه بین استفاده از حافظه و بهبود عملکرد برای هر پروژه و محیط استقرار متفاوت است.