ביצועים

ספריית הלקוח של PHP מקלה על האינטראקציות עם Google Ads API תוך שימוש מינימלי את ההגדרות האישיות שלכם. עם זאת, הביצועים תלויים במידה רבה באופן שבו נמצאת בשימוש ומשולבת.

רוב השיטות המומלצות האלה רלוונטיות בכל השפות. המדריך הזה כולל מידע על האתרים שספציפיים ל-PHP.

הטמעת Protobuf

Protobuf משמש את gRPC וב-Google Ads API להודעות עם בקשות ותשובות. יש שתי שיטות להטמעת מודעות אף על פי שהביצועים שכתובים ב-C טובים יותר.

מידע נוסף זמין במדריך Protobuf.

מצב הפעולה של 'תרגום ב-PHP'

PHP הוא כלי סקריפטים רב-תכליתי ויש בה הרבה פעולות בהתאם לשימוש. PHP ל-CGI (Common Gateway Interface) יש יתרון בולט כי הוא יכול לשתף בין הפעלת משאבים.

גרסת PHP

מומלץ לשדרג באופן קבוע לגרסת PHP חדשה יותר, כיוון שבדרך כלל מניב ביצועים כוללים טובים יותר. רשימת ה-PHP הנתמכים גרסאות שונות.

גרסאות של Google Ads API שלא בשימוש

כל הגרסאות של ספריית הלקוח תומכות בכמה גרסאות של Google Ads API. לכל גרסה של Google Ads API שנתמכת על ידי ספריית הלקוח יש שינויים חבילות ייעודיות לגרסה.

ניתן להשתמש בחבילות שמיועדות לגרסאות של Google Ads API שלא נעשה בהן שימוש. הוסרו בבטחה מספריית הלקוח. כי הפעולה הזו יכולה לעזור להאיץ או מצמצמים את טביעת הרגל הפחמנית, ספריית הלקוח מספקת כלים לעשות זאת באופן פרוגרמטי.

דוגמה

נניח שאתם מטמיעים את ספריית הלקוח שמשתמשת רק בגרסה העדכנית ביותר גרסת ה-API: v17, ואתם רוצים להסיר את התמיכה בממשק שלא נמצא בשימוש גרסאות API: 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

פלט הביצוע לדוגמה שבהמשך מצביע על הקטנה של 50M בגודל הקובץ רק הגרסה הנתמכת שנותרה היא 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 חדש. אפשרויות ייעודיות של Composer, כמו למשל --optimize-autoloader או --classmap-authoritative, יכולים להיות בשימוש חדש לגמרי.

רישום ביומן

הגדרה של יומני רישום ברמה גבוהה כמו ERROR יכולה לעזור לקצר את זמן הביצוע את התקורה ואת צריכת הזיכרון.

מידע נוסף זמין במדריך הרישום ביומן.

ניפוי באגים ו פרופיילינג

מומלץ להשבית את הכלים לניפוי באגים או ליצירת פרופילים, כי הם בדרך כלל מגיעים עם תקורה מסוימת של זמן הביצוע.

טעינה מראש

החל מ-PHP 7.4, OPcache טעינה מראש יכול לשמש לטעינה מראש של סקריפטים בזיכרון, ולהתקדם צעד אחד יותר מאשר שמירה במטמון.

יש לעצב סקריפט כדי לנצל את היתרון של תכונה זו, אבל ה-PHP לספריית הלקוח אין, כי אין דרך כללית להטמיע OPcache טעינה מראש, והאיזון בין השימוש בזיכרון לשיפור הביצועים הוא ספציפי מאוד לפרויקט ולביצוע.