ביצועים

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

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

רישום ביומן

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

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

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

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

טעינה מראש

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

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