בדף הזה מופיעים טיפים לפתרון בעיות שקשורות לתחילת העבודה עם Performance Monitoring או לשימוש בתכונות ובכלים של Performance Monitoring.
בדיקות ראשוניות לפתרון בעיות
שתי הבדיקות הבאות הן שיטות מומלצות כלליות שמומלצות לכל אחד לפני שממשיכים לפתרון בעיות נוסף.
1. בדיקת הודעות ביומן לגבי אירועי ביצועים
כדאי לבדוק את ההודעות ביומן כדי לוודא ש-Performance Monitoring SDK מתעד אירועי ביצועים.
איך רואים הודעות יומן לאירועי ביצועים
מפעילים רישום ביומן של ניפוי הבאגים עבור Performance Monitoring בזמן הבנייה על ידי הוספת רכיב
<meta-data>
לקובץAndroidManifest.xml
של האפליקציה, באופן הבא:<application> <meta-data android:name="firebase_performance_logcat_enabled" android:value="true" /> </application>
בודקים אם יש הודעות שגיאה ביומני הרישום.
Performance Monitoring מתייג את הודעות היומן שלו באמצעות
FirebasePerformance
. אפשר להשתמש בסינון logcat כדי לראות באופן ספציפי את רישום הבקשות ברשת HTTP/S ואת מעקב משך הזמן, על ידי הרצת הפקודה הבאה:adb logcat -s FirebasePerformance
כדאי לבדוק את סוגי היומנים הבאים כדי לוודא ש-Performance Monitoring מתעד אירועי ביצועים:
Logging trace metric: TRACE_NAME, FIREBASE_PERFORMANCE_CONSOLE_URL
Logging network request trace: URL
לוחצים על כתובת ה-URL כדי לראות את הנתונים במסוף Firebase. יכול להיות שיחלפו כמה רגעים עד שהנתונים יתעדכנו בלוח הבקרה.
אם האפליקציה לא מתעדת אירועי ביצועים, כדאי לעיין בטיפים לפתרון בעיות.
2. בדיקה של לוח הבקרה של הסטטוס של Firebase
כדאי לבדוק את לוח הבקרה של הסטטוס של Firebase אם יש השבתה ידועה של Firebase או של Performance Monitoring.
איך מתחילים להשתמש ב-Performance Monitoring
אם אתם מתחילים להשתמש ב-Performance Monitoring (iOS+ | Android | Web), טיפים לפתרון בעיות שבהמשך יכולים לעזור לכם לפתור בעיות שקשורות לזיהוי ה-SDK על ידי Firebase או להצגת נתוני הביצועים הראשונים במסוף Firebase.
הוספת את ה-SDK לאפליקציה, אבל במסוף עדיין מוצגת ההודעה שצריך להוסיף את ה-SDK
מערכת Firebase יכולה לזהות אם הוספתם בהצלחה את Performance Monitoring SDK לאפליקציה שלכם כשהיא מקבלת מהאפליקציה מידע על אירועים (כמו אינטראקציות עם האפליקציה). בדרך כלל, תוך 10 דקות מהפעלת האפליקציה, מוצגת ההודעה 'זוהה SDK' בלוח הבקרה של Firebase Console. לאחר מכן, תוך 30 דקות, יוצגו במרכז הבקרה הנתונים הראשוניים שעברו עיבוד.
אם חלפו יותר מ-10 דקות מאז שהוספתם את הגרסה האחרונה של ה-SDK לאפליקציה, ואתם עדיין לא רואים שינוי, כדאי לבדוק את הודעות היומן כדי לוודא ש-Performance Monitoring מתעד אירועים. כדי לפתור בעיות שקשורות להודעה על זיהוי SDK שמתעכבת, אפשר לנסות את השלבים המתאימים לפתרון בעיות שמתוארים בהמשך.
האפליקציה מתעדת אירועים: שלבים לפתרון בעיות
חשוב לוודא שאתם משתמשים ב-Performance Monitoring Android SDK בגרסה 19.1.0 ואילך (או בגרסה Firebase BoM 26.3.0 ואילך). אפשר לעיין בהערת הגרסה.
אם אתם עדיין מפתחים באופן מקומי, נסו ליצור עוד אירועים לאיסוף נתונים:
- כדי ליצור אירועים, מעבירים את האפליקציה בין הרקע לחזית כמה פעמים, יוצרים אינטראקציה עם האפליקציה על ידי ניווט בין מסכים ו/או מפעילים בקשות לרשת.
מוודאים שקובץ ההגדרות של Firebase (
google-services.json
) נוסף לאפליקציה בצורה נכונה ושלא שיניתם את הקובץ. באופן ספציפי, כדאי לבדוק את הנקודות הבאות:שם קובץ ההגדרות לא מסתיים בתווים נוספים, כמו
(2)
.קובץ ההגדרות נמצא בספרייה module (ברמת האפליקציה) של האפליקציה.
מזהה האפליקציה ב-Firebase ל-Android (
mobilesdk_app_id
) שמופיע בקובץ ההגדרות נכון לאפליקציה שלכם. מזהה האפליקציה ב-Firebase מופיע בכרטיס האפליקציות שלך בsettings הגדרות הפרויקט.
אם משהו נראה לא תקין בקובץ ההגדרות באפליקציה, נסו את הפעולות הבאות:
מוחקים את קובץ התצורה שקיים כרגע באפליקציה.
פועלים לפי ההוראות האלה כדי להוריד קובץ תצורה חדש ולהוסיף אותו לאפליקציית Android.
אם ה-SDK מתעד אירועים ונראה שההגדרה תקינה, אבל עדיין לא מוצגת הודעת הזיהוי של ה-SDK או נתונים מעובדים (אחרי 10 דקות), פנו לתמיכה של Firebase.
האפליקציה לא רושמת אירועים ביומן: שלבים לפתרון בעיות
כדי לבדוק את ההגדרה של התוסף Performance Monitoring Gradle:
מוודאים שהוספתם את הפלאגין בצורה נכונה. באופן ספציפי, כדאי לבדוק את הנקודות הבאות:
- הוספת את הפלאגין
(
) בקובץapply plugin: 'com.google.firebase.firebase-perf' build.gradle
של המודול (ברמת האפליקציה). - הוספתם את התלות בנתיב המחלקה של הפלאגין (
) בקובץclasspath 'com.google.firebase:perf-plugin:1.4.2' build.gradle
ברמת הפרויקט.
- הוספת את הפלאגין
(
מוודאים שהפלאגין לא מושבת באמצעות אחד מהדגלים הבאים:
-
instrumentationEnabled
בקובץ המודול (ברמת האפליקציה)build.gradle
firebasePerformanceInstrumentationEnabled
בקובץgradle.properties
-
בודקים ש-Performance Monitoring SDK לא מושבת באמצעות אחד מהדגלים הבאים בקובץ
AndroidManifest.xml
:firebase_performance_collection_enabled
firebase_performance_collection_deactivated
מוודאים ש-Performance Monitoring לא מושבת בזמן הריצה.
אם לא מצאתם באפליקציה שלכם שום דבר שמושבת, פנו לתמיכה של Firebase.
במסוף מצוין שערכת ה-SDK זוהתה, אבל לא מוצגים נתונים
Performance Monitoring מעבד את נתוני אירועי הביצועים לפני שהוא מציג אותם במרכז הבקרה לביצועים.
אם עברו יותר מ-24 שעות מאז שהופיעה ההודעה 'זוהה SDK', ועדיין לא מופיעים נתונים, כדאי לבדוק את לוח הבקרה של סטטוס Firebase כדי לראות אם יש הפסקת שירות ידועה. אם אין הפסקת שירות, פנו לתמיכה של Firebase.
פתרון בעיות כלליות
אם הוספתם את ה-SDK בהצלחה ואתם משתמשים ב-Performance Monitoring באפליקציה, הטיפים הבאים לפתרון בעיות יכולים לעזור לכם לפתור בעיות כלליות שקשורות לתכונות ולכלים של Performance Monitoring.
האפליקציה לא מתעדת אירועי ביצועים
אם אתם לא רואים הודעות יומן לגבי אירועי ביצועים, נסו לבצע את השלבים הבאים לפתרון בעיות:
כדי לבדוק את ההגדרה של התוסף Performance Monitoring Gradle:
מוודאים שהוספתם את הפלאגין בצורה נכונה. באופן ספציפי, כדאי לבדוק את הנקודות הבאות:
- הוספת את הפלאגין
(
) בקובץapply plugin: 'com.google.firebase.firebase-perf' build.gradle
של המודול (ברמת האפליקציה). - הוספתם את התלות בנתיב המחלקה של הפלאגין (
) בקובץclasspath 'com.google.firebase:perf-plugin:1.4.2' build.gradle
ברמת הפרויקט.
- הוספת את הפלאגין
(
מוודאים שהפלאגין לא מושבת באמצעות אחד מהדגלים הבאים:
-
instrumentationEnabled
בקובץ המודול (ברמת האפליקציה)build.gradle
firebasePerformanceInstrumentationEnabled
בקובץgradle.properties
-
בודקים ש-Performance Monitoring SDK לא מושבת באמצעות אחד מהדגלים הבאים בקובץ
AndroidManifest.xml
:firebase_performance_collection_enabled
firebase_performance_collection_deactivated
מוודאים ש-Performance Monitoring לא מושבת בזמן הריצה.
אם לא מצאתם באפליקציה שלכם שום דבר שמושבת, פנו לתמיכה של Firebase.
חסרים נתוני מעקב אחר מסך בלוח הבקרה של הביצועים
אם חסרים לכם נתונים של עקבות רינדור המסך, נסו את השלבים הבאים לפתרון בעיות:
חשוב לוודא שאתם משתמשים בגרסה העדכנית ביותר של Android SDK (גרסה 21.0.5). אפשר לקבל נתוני מעקב על עיבוד המסך רק בגרסה 15.2.0 ואילך.
מוודאים שלא השבתתם ידנית את האפשרות לשיפור המהירות באמצעות חומרה במסך.
מוודאים שלא משתמשים ב-DexGuard או ב-Jack. Performance Monitoring לא תואם לשרשראות הכלים האלה.
DexGuard משבית את האיסוף האוטומטי של עקבות של הפעלת האפליקציה, האפליקציה בחזית והאפליקציה ברקע. עם זאת, אם האפליקציה משתמשת ב-DexGuard, עקבות של קוד מותאם אישית אמורים להתנהג כרגיל.
הכלי Jack הוצא משימוש, ובדרך כלל לא מומלץ להשתמש בו באפליקציה.
חסרים נתוני מעקב מותאמים אישית בלוח הבקרה של הביצועים
האם אתם רואים נתוני ביצועים לגבי עקבות שנאספו באופן אוטומטי אבל לא לגבי עקבות של קוד בהתאמה אישית? אפשר לנסות את השלבים הבאים לפתרון בעיות:
אם הטמעתם מעקב אחר קוד מותאם אישית באמצעות Trace API, כדאי לבדוק את ההגדרה של המעקב, במיוחד את הדברים הבאים:
- השמות של מעקבים אחר קוד מותאם אישית ומדדים מותאמים אישית צריכים לעמוד בדרישות הבאות: לא יכולים להיות רווחים לבנים בתחילת השם או בסופו, לא יכול להיות קו תחתון (
_
) בתחילת השם, והאורך המקסימלי הוא 32 תווים. - צריך להפעיל ולהפסיק את כל העקבות. לא יתועד שום מעקב שלא התחיל, שלא נעצר או שנעצר לפני שהתחיל.
- השמות של מעקבים אחר קוד מותאם אישית ומדדים מותאמים אישית צריכים לעמוד בדרישות הבאות: לא יכולים להיות רווחים לבנים בתחילת השם או בסופו, לא יכול להיות קו תחתון (
אם הטמעתם מעקב אחר קוד מותאם אישית באמצעות הסימון
@AddTrace
, כדאי לבדוק את ההגדרה של הפלאגין Performance Monitoring Gradle:מוודאים שהוספתם את הפלאגין בצורה נכונה. באופן ספציפי, כדאי לבדוק את הנקודות הבאות:
- הוספת את הפלאגין
(
) בקובץapply plugin: 'com.google.firebase.firebase-perf' build.gradle
של המודול (ברמת האפליקציה). - הוספתם את התלות בנתיב המחלקה של הפלאגין (
) בקובץclasspath 'com.google.firebase:perf-plugin:1.4.2' build.gradle
ברמת הפרויקט.
- הוספת את הפלאגין
(
מוודאים שהפלאגין לא מושבת באמצעות אחד מהדגלים הבאים:
-
instrumentationEnabled
בקובץ המודול (ברמת האפליקציה)build.gradle
firebasePerformanceInstrumentationEnabled
בקובץgradle.properties
-
בודקים את הודעות היומן כדי לוודא ש-Performance Monitoring מתעד את העקבות הצפויות של הקוד המותאם אישית.
אם Performance Monitoring מתעד אירועים, אבל לא מוצגים נתונים אחרי 24 שעות, פנו לתמיכה של Firebase.
לוח הבקרה של הביצועים לא כולל נתונים של בקשות רשת
אם חסרים לכם נתונים של בקשות לרשת, נסו את השלבים הבאים לפתרון בעיות:
באפליקציות ל-Android, הפלאגין Performance Monitoring Gradle מאפשר שימוש במכשיר מדידה שמספק מעקב אוטומטי אחרי בקשות רשת HTTP/S. כדאי לבדוק את הדברים הבאים:
מוודאים שהוספתם את הפלאגין בצורה נכונה. באופן ספציפי, כדאי לבדוק את הנקודות הבאות:
- הוספת את הפלאגין
(
) בקובץapply plugin: 'com.google.firebase.firebase-perf' build.gradle
של המודול (ברמת האפליקציה). - הוספתם את התלות בנתיב המחלקה של הפלאגין (
) בקובץclasspath 'com.google.firebase:perf-plugin:1.4.2' build.gradle
ברמת הפרויקט.
- הוספת את הפלאגין
(
מוודאים שהפלאגין לא מושבת באמצעות אחד מהדגלים הבאים:
-
instrumentationEnabled
בקובץ המודול (ברמת האפליקציה)build.gradle
firebasePerformanceInstrumentationEnabled
בקובץgradle.properties
-
בודקים אם יש חוסר תאימות בספריית הרשת. Performance Monitoring אוסף באופן אוטומטי מדדים לבקשות רשת שמשתמשות בספריות הרשת הבאות: OkHttp 3.x.x, URLConnection של Java ו-HttpClient של Apache.
שימו לב שאפשר להוסיף מעקב מותאם אישית לבקשות רשת.
חשוב לזכור:
בהתאם להתנהגות של הקוד וספריות הרשת שבהן הקוד משתמש, יכול להיות ש-Performance Monitoring ידווח רק על בקשות רשת שהושלמו. המשמעות היא שחיבורי HTTP/S שנשארו פתוחים לא ידווחו.
האפליקציה Performance Monitoring לא תואמת ל-DexGuard ול-Jack.
- DexGuard משבית את המעקב אחרי בקשות רשת מסוג HTTP/S.
- הכלי Jack הוצא משימוש, ובדרך כלל לא מומלץ להשתמש בו באפליקציה.
Performance Monitoring לא מדווח על בקשות רשת עם כותרות
Content-Type
לא תקינות. עם זאת, בקשות לרשת ללא הכותרותContent-Type
עדיין יתקבלו.
נתוני בקשות הרשת לא מצטברים כמצופה
מידע נוסף על האופן שבו Performance Monitoring צובר נתונים של בקשות מהרשת לפי תבניות של כתובות URL
אפשר גם לנסות דפוסי כתובות URL מותאמות אישית.
שאלות נפוצות
מה קרה לכרטיס 'הבעיות העיקריות' בדף הבית של הפרויקט?
החלפנו את הבעיות העיקריות בהתראות האחרונות, בעקבות ההשקה האחרונה של התראות, שמודיעות לכם אוטומטית כשחלים שינויים שחורגים מהערכים שהגדרתם. הבעיות הוצאו משימוש והוחלפו בהתראות.
בורר האפליקציות בחלק העליון של כרטיס הביצועים מסנן את רשומות ההתראות בקטע התראות אחרונות. מוצגות רק שלוש ההתראות האחרונות לגבי האפליקציות שנבחרו.
מידע נוסף על התראות זמין במאמר בנושא הגדרת התראות לגבי בעיות בביצועים.
מה קרה לאפשרות להגדיר ערכי סף לבעיות במסוף?
ב-Performance Monitoring יש תמיכה בהתראות לגבי מדדים שחורגים מערכי סף מוגדרים. כדי למנוע בלבול עם ספי הגדרות האלה למדדי ביצועים, הסרנו את האפשרות להגדיר ספי בעיות.
מה קרה למידע על הפרטים והמדדים במסוף Firebase?
החלפנו את הדפים 'פרטים' ו'מדדים' בממשק משתמש (UI) חדש, מרכזי ומעוצב מחדש, כדי לשפר את האופן שבו אתם פותרים בעיות. ממשק המשתמש החדש לפתרון בעיות מציע את אותה פונקציונליות ליבה שהייתה זמינה בקטע 'פרטים' ובקטע 'מדדים'. מידע נוסף על פתרון בעיות זמין במאמר הצגת נתונים נוספים של מעקב ספציפי.
למה מספר הדגימות לא תואם למה שציפיתי?
Performance Monitoring אוספת נתוני ביצועים ממכשירי המשתמשים באפליקציה. אם לאפליקציה שלכם יש הרבה משתמשים או שהיא יוצרת כמות גדולה של פעילות שקשורה לביצועים, יכול להיות ש-Performance Monitoring יגביל את איסוף הנתונים לקבוצת משנה של מכשירים כדי לצמצם את מספר האירועים שעוברים עיבוד. המגבלות האלה גבוהות מספיק, כך שגם אם יש פחות אירועים, ערכי המדדים עדיין מייצגים את חוויית השימוש של המשתמשים באפליקציה.
כדי לנהל את נפח הנתונים שאנחנו אוספים, Performance Monitoring משתמש באפשרויות הדגימה הבאות:
הגבלת קצב במכשיר: כדי למנוע ממכשיר לשלוח פרצי נתונים פתאומיים של עקבות, אנחנו מגבילים את מספר העקבות של קוד ובקשות רשת שנשלחות ממכשיר ל-300 אירועים כל 10 דקות. הגישה הזו מגנה על המכשיר מפני לולאות של מכשירים וירטואליים שיכולות לשלוח כמויות גדולות של נתוני ביצועים, ומונעת ממכשיר יחיד להטות את מדידות הביצועים.
דגימה דינמית: Performance Monitoring אוסף מספר מוגבל של עקבות קוד ועקבות של בקשות רשת לכל אפליקציה מדי יום מכל המשתמשים באפליקציה. שיעור דגימה דינמי מאוחזר במכשירים (באמצעות Firebase Remote Config) כדי לקבוע אם מכשיר אקראי צריך לצלם ולשלוח עקבות. מכשיר שלא נבחר לדגימה לא שולח אירועים. שיעור הדגימה הדינמי הוא ספציפי לאפליקציה ומשתנה כדי להבטיח שנפח הנתונים הכולל שנאסף יישאר מתחת למגבלה.
בפרויקטים שבהם הופעל השילוב עם BigQuery, המגבלה על מספר העקבות של בקשות הרשת גבוהה יותר.
בסשנים של משתמשים נשלחים נתונים נוספים ומפורטים מהמכשיר של המשתמש, ולכן נדרשים יותר משאבים כדי לתעד ולשלוח את הנתונים. כדי למזער את ההשפעה של סשנים של משתמשים, יכול להיות ש-Performance Monitoring גם יגביל את מספר הסשנים.
הגבלת קצב העברת נתונים בצד השרת: כדי לוודא שהאפליקציות לא חורגות ממגבלת הדגימה, יכול להיות ש-Performance Monitoring ישתמש בדגימה בצד השרת כדי להשליך חלק מהאירועים שמתקבלים מהמכשירים. למרות שהגבלת הנתונים מהסוג הזה לא משנה את היעילות של המדדים שלנו, היא עלולה לגרום לשינויים קלים בדפוסים, כולל השינויים הבאים:
- מספר העקבות יכול להיות שונה ממספר הפעמים שקטע קוד הוצא לפועל.
- יכול להיות שלכל אחד מהמעקבים שמשולבים בקוד יהיה מספר שונה של דגימות.
מה קרה לכרטיסייה בעיות ב-Play Console?
החלפנו את הכרטיסייה 'בעיות' בהתראות, שמודיעות לכם באופן אוטומטי כשיש חריגה מספי העלויות שהגדרתם. לא צריך יותר לבדוק ידנית את מסוף Firebase כדי לדעת מה הסטטוס של סף. מידע נוסף על התראות זמין במאמר הגדרת התראות לגבי בעיות בביצועים.
מה קרה לכרטיסיות במכשיר ורשת במסוף? איך אפשר לראות את העקבות שהיו בדפים האלה?
עיצבנו מחדש את הקטע Performance Monitoring במסוף Firebase כך שבכרטיסייה לוח בקרה מוצגים מדדי המפתח וכל העקבות במקום אחד. במסגרת העיצוב מחדש, הסרנו את הדפים במכשיר ורשת.
בטבלת העקבות בחלק התחתון של הכרטיסייה מרכז הבקרה מופיעים כל הנתונים שהוצגו בכרטיסיות במכשיר ורשת, אבל עם כמה תכונות נוספות, כולל האפשרות למיין את העקבות לפי אחוז השינוי במדד ספציפי. כדי לראות את כל המדדים והנתונים של טרייס ספציפי, לוחצים על שם הטרייס בטבלת הטרייסים.
אפשר לראות את העקבות בכרטיסיות המשנה הבאות של טבלת העקבות:
- מעקב אחרי בקשות רשת (גם מוכן מראש וגם בהתאמה אישית) – כרטיסיית המשנה בקשות רשת
- מעקב אחר קוד בהתאמה אישית – כרטיסיית המשנה מעקב בהתאמה אישית
- עקבות של הפעלת אפליקציה, אפליקציה שפועלת בחזית ואפליקציה שפועלת ברקע – כרטיסיית המשנה עקבות בהתאמה אישית
- עקבות של רינדור המסך – כרטיסיית המשנה רינדור המסך
- עקבות של טעינת דפים – כרטיסיית המשנה Page load (טעינת דף)
פרטים על טבלת העקבות ועל צפייה במדדים ובנתונים זמינים בדף הסקירה הכללית של המסוף (iOS+ | Android | אינטרנט).
למה מספר הפריימים האיטיים והקפואים לא תואם למה שציפיתי?
החישוב של פריימים עם רינדור איטי ופריימים קפואים מתבצע על סמך קצב רענון משוער של המכשיר, שהוא 60Hz. אם קצב הרענון של המכשיר נמוך מ-60Hz, לכל פריים יהיה זמן רינדור איטי יותר כי פחות פריימים עוברים רינדור בכל שנייה. זמני רינדור איטיים יותר עלולים לגרום לדיווח על יותר פריימים איטיים או קפואים, כי יותר פריימים ירונדרו לאט יותר או יקפאו. עם זאת, אם קצב הרענון של המכשיר גבוה מ-60Hz, כל פריים ירונדר מהר יותר. כתוצאה מכך, יכול להיות שיופיעו פחות דיווחים על פריימים איטיים או קפואים. זוהי הגבלה נוכחית ב-SDK של Performance Monitoring.
למה אי אפשר לראות את עקבות הפרגמנטים?
כדי לראות את הביצועים של קטעי קוד בנוסף לפעילות באפליקציה, צריך לוודא שהאפליקציה משתמשת ב-Performance Monitoring Android SDK בגרסה 20.1.0 ואילך. מידע נוסף זמין במאמר הוספת מעקב אחר ביצועים לאפליקציה.
איך אפשר להבין אילו עקבות קשורים לפעילויות ולמקטעים?
כל אחד מהמעקבים של קטעי הדפים והפעילויות מבוסס על שם המחלקה שלו, כפי שהוגדר באפליקציה. כל אחד מהעקבות של המסך מכיל את הקידומת st ואחריה את שם המחלקה. במסוף Firebase, התחילית מוסרת. מידע נוסף זמין במאמר מידע על נתוני ביצועים של עיבוד מסך (אפליקציות ל-Apple ול-Android) .
למה אני רואה פחות עקבות של פרגמנטים בהשוואה לעקבות אחרים?
Performance Monitoring מבצע דגימת אירועים בכל האירועים שנאספים במכשיר. הגישה הזו מאפשרת לנו לאסוף את המינימום הנדרש של אירועים ממכשירי המשתמשים כדי לספק מדדי ביצועים.
איך מקבלים הודעה כשיש בעיה בביצועי העיבוד של האפליקציה?
Performance Monitoring מאפשרת להגדיר התראות לגבי המדדים שחשובים לכם. לגבי עקבות של עיבוד מסך שנוצרו, אפשר להגדיר התראות כדי לקבל הודעה כשאחוז הפריימים האיטיים והקפואים חורג מסף שהגדרתם.
זמני הבנייה שלי גבוהים אחרי הפעלת הפלאגין Performance Monitoring Gradle. איך אפשר לשפר את זה?
Performance Monitoring ל-Android משתמשת בשינוי של קוד בייט כדי לספק כמה תכונות מוכנות לשימוש, כמו מעקב אחרי בקשות רשת מסוג HTTP/S. כחלק מהקומפילציה, התהליך דורש איטרציה בכל המחלקות של האפליקציה (כולל יחסי תלות) כדי להוסיף קוד שחיוני למדידת הביצועים של הבקשות לרשת באפליקציה.
ריכזנו כאן כמה גורמים עיקריים שמשפיעים על העלייה בזמן הבנייה:
- מספר הכיתות או הקבצים
- הגודל של כל אחת מהמחלקות האלה (שורות קוד)
- הגדרת המחשב
- הגרסה הראשונית לעומת גרסה שנוצרה בהמשך (בדרך כלל הגרסאות שנוצרות בהמשך מהירות יותר מהגרסה הראשונית)
כדי לייעל את זמן ה-build, כדאי להפוך את הקוד למודולרי.
החל מ-v1.3.3 של התוסף Performance Monitoring, התמקדנו בשיפורים משמעותיים בעיבוד של בנייה מצטברת ובשמירת נתוני קלט של הספריות במטמון. כדי ליהנות מהשיפורים האחרונים בזמן הבנייה, חשוב להשתמש בגרסה האחרונה של התוסף (v1.4.2).
שימו לב שאם אתם רוצים להימנע מזמני בנייה ארוכים, אתם יכולים להשבית את התוסף Performance Monitoring באופן מקומי בגרסאות הניפוי באגים. עם זאת, לא מומלץ להשתמש בגישה הזו בגרסאות ייצור, כי היא עלולה לגרום לכך שלא יתבצעו מדידות של ביצועי בקשות הרשת באפליקציה.
מה עושים אם מקבלים שגיאות build בגלל ספריות לא תואמות עם התוסף Performance Monitoring Gradle?
Performance Monitoring ל-Android משתמשת בשינוי של קוד בייט כדי לספק כמה תכונות מוכנות לשימוש, כמו מעקב אחרי בקשות רשת מסוג HTTP/S. כחלק מהקומפילציה, התהליך דורש איטרציה בכל המחלקות של האפליקציה (כולל יחסי תלות) כדי להוסיף קוד שחיוני למדידת הביצועים של הבקשות לרשת באפליקציה.
אם אתם מקבלים שגיאות בנייה כמו JSR/RET are not supported with
computeFrames option
או שגיאות דומות אחרי שמשלבים עם הפלאגין Performance Monitoring, יכול להיות שזה קורה כי יש לכם גם תלות בספרייה שלא תואמת לפלאגין Performance Monitoring Gradle.
כדי לעקוף את הבעיה הזו, אפשר להחריג כיתות או ספריות לא תואמות מהמדידה. לשם כך, פועלים לפי השלבים הבאים:
- מעדכנים לגרסה האחרונה של הפלאגין Performance Monitoring Gradle (מינימום v1.4.0).
- מעדכנים את הגרסה של הפלאגין Android Gradle לגרסה 7.2.0 או לגרסה חדשה יותר.
- מוסיפים את הדגל הבא לקובץ
build.gradle
של המודול (ברמת האפליקציה) כדי להחריג את המחלקות או הספריות הלא תואמות מהוספת המכשיר: מידע נוסף על המאפייןandroid { // ... androidComponents { onVariants(selector().all(), { instrumentation.excludes.add("example.incompatible.library") }) } }
exclude
של Android Gradle plugin'sInstrumentation
API זמין במאמר Instrumentation.
אם נתקלתם בשגיאות בנייה בגלל ספריות לא תואמות, אתם מוזמנים לדווח על בעיה ב-GitHub כדי שנוכל להוסיף אותן לרשימת הספריות שלא ייכללו ב-instrumentation של התוסף Performance Monitoring.
הייצוא של נתוני Performance Monitoring ל-BigQuery נמשך זמן רב מהצפוי. האם זה לא בזמן אמת?
אם הפעלתם את השילוב של BigQuery עם Firebase Performance Monitoring, הנתונים שלכם ייוצאו ל-BigQuery 12 עד 24 שעות אחרי סוף היום (לפי שעון החוף הפסיפי).
לדוגמה, הנתונים מ-19 באפריל יהיו זמינים ב-BigQuery ב-20 באפריל בין השעה 12:00 בצהריים לחצות (כל התאריכים והשעות הם לפי שעון החוף הפסיפי).
עיבוד והצגה של נתונים כמעט בזמן אמת
מה המשמעות של נתוני ביצועים 'כמעט בזמן אמת'?
Firebase Performance Monitoring מעבד את נתוני הביצועים שנאספים כשהם מגיעים, וכתוצאה מכך הנתונים מוצגים במסוף Firebase כמעט בזמן אמת. הנתונים המעובדים מוצגים במסוף תוך כמה דקות מרגע האיסוף, ולכן אנחנו משתמשים במונח 'כמעט בזמן אמת'.
כדי ליהנות מעיבוד נתונים כמעט בזמן אמת, צריך לוודא שהאפליקציה משתמשת בגרסת SDK שתואמת לעיבוד בזמן אמת.
איך אפשר לקבל נתוני ביצועים של האפליקציה כמעט בזמן אמת?
כדי ליהנות מעיבוד נתונים כמעט בזמן אמת, צריך רק לוודא שהאפליקציה משתמשת בגרסת SDK של Performance Monitoring שתואמת לעיבוד נתונים בזמן אמת.
אלה גרסאות ה-SDK שתואמות לדיווח בזמן אמת:
- iOS – גרסה 7.3.0 ואילך
- tvOS – גרסה 8.9.0 ואילך
- Android – גרסה 19.0.10 ואילך (או Firebase Android BoM גרסה 26.1.0 ואילך)
- אינטרנט – גרסה 7.14.0 ואילך
שימו לב: אנחנו תמיד ממליצים להשתמש בגרסה האחרונה של ה-SDK, אבל כל גרסה שמפורטת למעלה תאפשר ל-Performance Monitoring לעבד את הנתונים שלכם כמעט בזמן אמת.
אילו גרסאות של Performance Monitoring SDK נחשבות תואמות לזמן אמת?
אלה גרסאות ה-SDK שתואמות לעיבוד נתונים בזמן אמת:
- iOS – גרסה 7.3.0 ואילך
- tvOS – גרסה 8.9.0 ואילך
- Android – גרסה 19.0.10 ואילך (או Firebase Android BoM גרסה 26.1.0 ואילך)
- אינטרנט – גרסה 7.14.0 ואילך
שימו לב: אנחנו תמיד ממליצים להשתמש בגרסה האחרונה של ה-SDK, אבל כל גרסה שמפורטת למעלה תאפשר ל-Performance Monitoring לעבד את הנתונים שלכם כמעט בזמן אמת.
מה יקרה אם לא אעדכן את האפליקציה שלי כדי להשתמש בגרסת SDK שתואמת לנתונים בזמן אמת?
אם האפליקציה שלכם לא משתמשת בגרסת SDK שתואמת לנתונים בזמן אמת, עדיין תוכלו לראות את כל נתוני הביצועים של האפליקציה ב-Firebase Console. עם זאת, נתוני הביצועים יוצגו באיחור של כ-36 שעות ממועד האיסוף שלהם.
עדכנתי לגרסת SDK שתואמת לנתונים בזמן אמת, אבל חלק מהמשתמשים שלי עדיין משתמשים בגרסאות ישנות של האפליקציה שלי. האם אמשיך לראות את נתוני הביצועים שלהם במסוף Firebase?
כן! לא משנה באיזו גרסת SDK נעשה שימוש במופע של אפליקציה, תוכלו לראות נתוני ביצועים מכל המשתמשים.
עם זאת, אם אתם בודקים נתונים עדכניים (בני פחות מ-36 שעות בערך), הנתונים שמוצגים הם של משתמשים במופעים של האפליקציה שמשתמשים בגרסת SDK שתואמת לזמן אמת. לעומת זאת, הנתונים לא מהזמן האחרון כוללים נתוני ביצועים מכל הגרסאות של האפליקציה.
פנייה לתמיכה של Firebase
אם פונים לתמיכה של Firebase, חשוב לכלול תמיד את מזהה האפליקציה ב-Firebase. מזהה האפליקציה ב-Firebase מופיע בכרטיס האפליקציות שלך בsettings הגדרות הפרויקט.