ביצועים

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

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

יצירת פרופיל לאפליקציה

כדאי ליצור פרופיל של האפליקציה גם לשימוש במעבד (CPU) וגם לשימוש בזיכרון, כדי לזהות צווארי בקבוק בביצועים. ‫Devel::NYTProf הוא פרופילר רב-עוצמה של קוד מקור ב-Perl, שאפשר לבדוק אותו.

גרסת Perl

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

רישום ביומן

רישום נרחב ביומן עלול לגרום לעיכובים משמעותיים בזמן הביצוע ולצריכת זיכרון גבוהה. מומלץ להגדיר את רמת הרישום ביומן ל-WARN לכל קוד שנמצא בסביבת ייצור.

פרטים נוספים על ההגדרה של כלי רישום ביומן של סיכומים ופרטים זמינים במדריך לרישום ביומן.

השיטה Search או SearchStream

‫Google Ads API מספק שתי שיטות עיקריות לאחזור אובייקטים – Search (שמשתמשת בחלוקה לדפים) ו-SearchStream (שמשתמשת בהזרמה). ‫SearchStream מספקת ביצועים טובים יותר בהשוואה לשיטה Search, אבל יכול להיות שיהיו תרחישים מסוימים שבהם שיטה Search תהיה עדיפה.

כאן אפשר לקרוא מידע נוסף על שתי השיטות.

פסק זמן ב-HTTP

ספריית הלקוח של Perl מספקת ממשק להגדרת פסק זמן (timeout) של HTTP ברמת הלקוח:

my $api_client = Google::Ads::GoogleAds::GoogleAdsClient->new({
  # Set HTTP timeout to 5 minutes.
  http_timeout   => 300
});

ערך ברירת המחדל מוגדר על סמך ההגדרה DEFAULT_HTTP_TIMEOUT בקובץ Constants.pm. מגדירים ערך נמוך יותר אם רוצים להגביל את הזמן המקסימלי לקריאה ל-API.

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