این صفحه نکتههایی برای عیبیابی کردن شروع کار با Performance Monitoring یا استفاده از ویژگیها و ابزارهای Performance Monitoring ارائه میدهد.
بررسیهای اولیه برای عیبیابی
دو بررسی زیر روالهای مطلوب کلی هستند که به همه توصیه میشود قبلاز عیبیابی بیشتر انجام دهند.
۱. بررسی پیامهای گزارش برای رویدادهای عملکرد
پیامهای گزارش را بررسی کنید تا مطمئن شوید که «کیت توسعه نرمافزار» Performance Monitoring رویدادهای عملکرد را ضبط میکند.
نحوه مشاهده پیامهای گزارش برای رویدادهای عملکرد
با افزودن عنصر
<meta-data>به فایلAndroidManifest.xmlبرنامه، گزارش اشکالزدایی را برای Performance Monitoring در زمان ساخت فعال کنید، مانند این:<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_URLLogging network request trace: URL
برای مشاهده دادههایتان در کنسول Firebase، روی نشانی وب کلیک کنید. ممکن است چند لحظه طول بکشد تا دادهها در داشبورد بهروزرسانی شود.
اگر برنامه شما رویدادهای عملکرد را ثبت نمیکند، نکات عیبیابی را مرور کنید.
۲. «داشبورد وضعیت Firebase» را بررسی کنید
درصورت وجود قطعی شناختهشده برای Firebase یا Performance Monitoring، داشبورد وضعیت Firebase را بررسی کنید.
شروع به کار با Performance Monitoring
اگر درحال شروع کار با Performance Monitoring هستید (iOS+ | Android | وب)، نکات عیبیابی زیر میتواند در حل مشکلاتی که شامل شناسایی کیت توسعه نرمافزار توسط Firebase یا نمایش اولین دادههای عملکرد در کنسول Firebase میشود کمک کند.
کیت توسعه نرمافزار به برنامه اضافه شده است، اما کنسول همچنان میگوید کیت توسعه نرمافزار را اضافه کنید
وقتی Firebase اطلاعات رویداد (مثل تعاملات برنامه) را از برنامهتان دریافت میکند، میتواند تشخیص دهد که آیا Performance Monitoring کیت توسعه نرمافزار را با موفقیت به برنامهتان اضافه کردهاید یا نه. معمولاً ظرف ۱۰ دقیقه پساز شروع برنامه، داشبورد عملکرد کنسول Firebase پیام «کیت توسعه نرمافزار شناسایی شد» را نمایش میدهد. سپس، ظرف ۳۰ دقیقه، داشبورد دادههای پردازششده اولیه را نمایش میدهد.
اگر بیشاز ۱۰ دقیقه از افزودن جدیدترین نسخه کیت توسعه نرمافزار به برنامهتان میگذرد و هنوز تغییری مشاهده نمیکنید، پیامهای گزارش خود را بررسی کنید تا مطمئن شوید که Performance Monitoring رویدادها را گزارش میکند. برای عیبیابی پیام تشخیص SDK تأخیردار، مراحل عیبیابی مناسب را که در زیر توضیح داده شده است امتحان کنید.
برنامه درحال ثبت رویدادها است: مراحل عیبیابی
مطمئن شوید که از Performance Monitoring Android SDK 19.1.0 یا جدیدتر (یا Firebase BoM 26.3.0 یا جدیدتر) استفاده میکنید، یادداشت انتشار را ببینید.
اگر هنوز بهصورت محلی توسعه میدهید، رویدادهای بیشتری برای جمعآوری دادهها تولید کنید:
- با چندین بار جابهجا کردن برنامه بین پسزمینه و پیشزمینه، تعامل با برنامه ازطریق پیمایش در صفحهها، و/یا راهاندازی درخواستهای شبکه، رویداد تولید کنید.
مطمئن شوید که فایل پیکربندی Firebase (
google-services.json) بهدرستی به برنامه شما اضافه شده باشد و فایل را تغییر نداده باشید. بهطور دقیق، موارد زیر را بررسی کنید:نام فایل پیکربندی با نویسههای اضافی، مثل
(2)، اضافه نشده باشد.فایل پیکربندی در دایرکتوری واحد (سطح برنامه) برنامه شما قرار دارد.
«شناسه برنامه Firebase Android» (
mobilesdk_app_id) فهرستشده در فایل پیکربندی برای برنامه شما صحیح است. «شناسه برنامه Firebase» خود را در کارت برنامههای شما در settings تنظیمات پروژه پیدا کنید.
اگر بهنظر میرسد مشکلی در فایل پیکربندی برنامه شما وجود دارد، موارد زیر را امتحان کنید:
فایل پیکربندی را که درحالحاضر در برنامهتان دارید حذف کنید.
برای بارگیری فایل پیکربندی جدید و افزودن آن به برنامه Android خود، این دستورالعملها را دنبال کنید.
اگر «کیت توسعه نرمافزار» رویدادها را ثبت میکند و بهنظر میرسد همه چیز بهدرستی تنظیم شده است، اما همچنان پیام شناسایی «کیت توسعه نرمافزار» یا دادههای پردازششده را (پساز ۱۰ دقیقه) نمیبینید، با «پشتیبانی Firebase» تماس بگیرید.
برنامه رویدادها را ثبت نمیکند: مراحل عیبیابی
راهاندازی افزایه Performance Monitoring Gradle را بهصورت زیر بررسی کنید:
مطمئن شوید که افزایه را بهدرستی اضافه کردهاید. بهطور دقیق، موارد زیر را بررسی کنید:
- افزایه را در
(
) در فایل واحد (سطح برنامه)apply plugin: 'com.google.firebase.firebase-perf' build.gradleاضافه کردید. - وابستگی مسیر کلاس را برای افزایه
(
) در فایل سطح پروژهclasspath 'com.google.firebase:perf-plugin:2.0.2' build.gradleاضافه کردهاید.
- افزایه را در
(
مطمئن شوید که افزایه ازطریق هریک از پرچمهای زیر غیرفعال نشده باشد:
-
instrumentationEnabledدر واحد شما (سطح برنامه) فایلbuild.gradle -
firebasePerformanceInstrumentationEnabledدر فایلgradle.propertiesشما
-
بررسی کنید که کیت توسعه نرمافزار Performance Monitoring ازطریق هریک از پرچمهای زیر در فایل
AndroidManifest.xmlشما غیرفعال نشده باشد:firebase_performance_collection_enabledfirebase_performance_collection_deactivated
مطمئن شوید که Performance Monitoring در زمان اجرا غیرفعال نشده باشد.
اگر نمیتوانید چیزی را که در برنامهتان غیرفعال شده است پیدا کنید، با پشتیبانی Firebase تماس بگیرید.
«کنسول» میگوید «کیت توسعه نرمافزار» شناسایی شده است، اما دادهای نمایش داده نمیشود
Performance Monitoring دادههای رویداد عملکرد را قبلاز نمایش دادن در داشبورد «عملکرد» پردازش میکند.
اگر بیشاز ۲۴ ساعت از زمان ظاهر شدن پیام «کیت توسعه نرمافزار شناسایی شد» گذشته است، و هنوز دادهای نمیبینید، داشبورد وضعیت Firebase را بررسی کنید تا ببینید آیا قطعی شناختهشدهای وجود دارد یا نه. اگر قطعی وجود ندارد، با پشتیبانی Firebase تماس بگیرید.
عیبیابی عمومی
اگر کیت توسعه نرمافزار را باموفقیت اضافه کردهاید و از Performance Monitoring در برنامهتان استفاده میکنید، نکات عیبیابی زیر میتواند به رفع مشکلات عمومی مربوط به ویژگیها و ابزارهای Performance Monitoring کمک کند.
برنامه رویدادهای عملکرد را ثبت نمیکند
اگر پیامهای گزارش برای رویدادهای عملکرد را نمیبینید، مراحل عیبیابی زیر را امتحان کنید:
راهاندازی افزایه Performance Monitoring Gradle را بهصورت زیر بررسی کنید:
مطمئن شوید که افزایه را بهدرستی اضافه کردهاید. بهطور دقیق، موارد زیر را بررسی کنید:
- افزایه را در
(
) در فایل واحد (سطح برنامه)apply plugin: 'com.google.firebase.firebase-perf' build.gradleاضافه کردید. - وابستگی مسیر کلاس را برای افزایه
(
) در فایل سطح پروژهclasspath 'com.google.firebase:perf-plugin:2.0.2' build.gradleاضافه کردهاید.
- افزایه را در
(
مطمئن شوید که افزایه ازطریق هریک از پرچمهای زیر غیرفعال نشده باشد:
-
instrumentationEnabledدر واحد شما (سطح برنامه) فایلbuild.gradle -
firebasePerformanceInstrumentationEnabledدر فایلgradle.propertiesشما
-
بررسی کنید که کیت توسعه نرمافزار Performance Monitoring ازطریق هریک از پرچمهای زیر در فایل
AndroidManifest.xmlشما غیرفعال نشده باشد:firebase_performance_collection_enabledfirebase_performance_collection_deactivated
مطمئن شوید که Performance Monitoring در زمان اجرا غیرفعال نشده باشد.
اگر نمیتوانید چیزی را که در برنامهتان غیرفعال شده است پیدا کنید، با پشتیبانی Firebase تماس بگیرید.
داشبورد عملکرد دادههای ردیابی صفحه ندارد
اگر دادههای ردهای پرداز صفحه را ندارید، مراحل عیبیابی زیر را امتحان کنید:
مطمئن شوید که از جدیدترین نسخه Android SDK (v22.0.6) استفاده میکنید. ردیابیهای پردازش صفحه فقط با نسخه ۱۵.۲.۰ یا جدیدتر دردسترس است.
مطمئن شوید که شتاب سختافزاری را برای صفحه بهصورت دستی غیرفعال نکرده باشید.
مطمئن شوید که از DexGuard یا Jack استفاده نمیکنید. Performance Monitoring با این زنجیرههای ابزار ناسازگار است.
DexGuard جمعآوری خودکار ردپاهای شروع برنامه، برنامه در پیشزمینه، و برنامه در پسزمینه را غیرفعال میکند. بااینحال، اگر برنامه شما از DexGuard استفاده میکند، هرگونه ردیابی کد سفارشی باید بهطور معمول عمل کند.
Jack منسوخ شده است و بهطورکلی نباید در برنامهتان استفاده شود.
داشبورد عملکرد فاقد دادههای ردیابی سفارشی است
آیا دادههای عملکرد را برای ردگیریهای جمعآوریشده بهطور خودکار میبینید اما برای ردگیریهای کد سفارشی نمیبینید؟ مراحل عیبیابی زیر را امتحان کنید:
اگر ردیابیهای کد سفارشی را ازطریق میانای برنامهسازی کاربردی ردیابی پیادهسازی کردهاید، راهاندازی ردیابیها، بهویژه موارد زیر را بررسی کنید:
- نامهای ردگیریهای کد سفارشی و سنجههای سفارشی باید الزامات زیر را برآورده کنند: فاصله سفید در ابتدا یا انتها نداشته باشند، نویسه زیرخط (
_) در ابتدا نداشته باشند، و حداکثر طول آنها ۳۲ نویسه باشد. - همه ردیابیها باید شروع و متوقف شوند. ردیابیهایی که شروع نشدهاند، متوقف نشدهاند، یا قبلاز شروع متوقف شدهاند ثبت نخواهند شد.
- نامهای ردگیریهای کد سفارشی و سنجههای سفارشی باید الزامات زیر را برآورده کنند: فاصله سفید در ابتدا یا انتها نداشته باشند، نویسه زیرخط (
اگر ردهای کد سفارشی را ازطریق
@AddTraceنشانهگذاری ابزاربندی کردهاید، تنظیمات افزایه Performance Monitoring Gradle را بررسی کنید:مطمئن شوید که افزایه را بهدرستی اضافه کردهاید. بهطور دقیق، موارد زیر را بررسی کنید:
- افزایه را در
(
) در فایل واحد (سطح برنامه)apply plugin: 'com.google.firebase.firebase-perf' build.gradleاضافه کردید. - وابستگی مسیر کلاس را برای افزایه
(
) در فایل سطح پروژهclasspath 'com.google.firebase:perf-plugin:2.0.2' build.gradleاضافه کردهاید.
- افزایه را در
(
مطمئن شوید که افزایه ازطریق هریک از پرچمهای زیر غیرفعال نشده باشد:
-
instrumentationEnabledدر واحد شما (سطح برنامه) فایلbuild.gradle -
firebasePerformanceInstrumentationEnabledدر فایلgradle.propertiesشما
-
برای اطمینان از اینکه Performance Monitoring ردپاهای کد سفارشی موردانتظار را ثبت میکند، پیامهای گزارش را بررسی کنید.
اگر Performance Monitoring رویدادها را ثبت میکند، اما پساز ۲۴ ساعت دادهای نمایش داده نمیشود، با «پشتیبانی Firebase» تماس بگیرید.
داشبورد عملکرد دادههای درخواست شبکه ندارد
اگر دادههای درخواست شبکه را ندارید، مراحل عیبیابی زیر را امتحان کنید:
برای برنامههای Android، افزایه Performance Monitoring Gradle ابزاری را فعال میکند که پایش خودکار درخواستهای شبکه HTTP/S را ارائه میدهد. موارد زیر را بررسی کنید:
مطمئن شوید که افزایه را بهدرستی اضافه کردهاید. بهطور دقیق، موارد زیر را بررسی کنید:
- افزایه را در
(
) در فایل واحد (سطح برنامه)apply plugin: 'com.google.firebase.firebase-perf' build.gradleاضافه کردید. - وابستگی مسیر کلاس را برای افزایه
(
) در فایل سطح پروژهclasspath 'com.google.firebase:perf-plugin:2.0.2' build.gradleاضافه کردهاید.
- افزایه را در
(
مطمئن شوید که افزایه ازطریق هریک از پرچمهای زیر غیرفعال نشده باشد:
-
instrumentationEnabledدر واحد شما (سطح برنامه) فایلbuild.gradle -
firebasePerformanceInstrumentationEnabledدر فایلgradle.propertiesشما
-
عدم سازگاری کتابخانه شبکه را بررسی کنید. Performance Monitoring بهطور خودکار سنجههای مربوط به درخواستهای شبکه را که از کتابخانههای شبکه زیر استفاده میکنند جمعآوری میکند: OkHttp 3.x.x، Java's URLConnection، و Apache HttpClient.
توجه داشته باشید که میتوانید پایش سفارشی برای درخواستهای شبکه اضافه کنید.
به موارد زیر توجه کنید:
بسته به عملکرد کد و کتابخانههای شبکه استفادهشده توسط کد شما، ممکن است Performance Monitoring فقط درخواستهای شبکهای را گزارش کند که تکمیل شدهاند. این یعنی اتصالهای HTTP/S که باز ماندهاند ممکن است گزارش نشوند.
Performance Monitoring با DexGuard و Jack سازگار نیست.
- DexGuard پایش درخواستهای شبکه HTTP/S را غیرفعال میکند.
- Jack منسوخ شده است و بهطورکلی نباید در برنامهتان استفاده شود.
Performance Monitoring درخواستهای شبکه با سرایندهای نامعتبر
Content-Typeرا گزارش نمیکند. بااینحال، درخواستهای شبکه بدون سرصفحههایContent-Typeهمچنان پذیرفته خواهد شد.
دادههای درخواست شبکه طبق انتظار تجمیع نمیشوند
درباره نحوه تجمیع دادههای درخواست شبکه Performance Monitoring تحت الگوهای نشانی وب بیشتر بدانید.
همچنین میتوانید الگوهای نشانی وب سفارشی را امتحان کنید!
پرسشگان
چه اتفاقی برای «مشکلات برتر» در کارت «عملکرد» در صفحه اصلی «پروژه» افتاد؟
مشکلات برتر را با هشدارهای اخیر جایگزین کردیم تا معرفی اخیر هشدارهایمان را پیگیری کنیم. این هشدارها وقتی از آستانههایی که تنظیم کردهاید عبور شود بهطور خودکار به شما اطلاع میدهند. اکنون مشکلات منسوخ شدهاند و با هشدارها جایگزین شدهاند.
انتخابگر برنامهها در بالای کارت «عملکرد» ورودیهای هشدار را در بخش هشدارهای اخیر فیلتر میکند. فقط سه هشدار اخیر برای برنامه(های) انتخابی نمایش داده میشود.
برای کسب اطلاعات بیشتر درباره هشدارها، به راهاندازی هشدارها برای مشکلات عملکرد مراجعه کنید.
توانایی تنظیم آستانه برای مشکلات در کنسول چه شد؟
Performance Monitoring از هشدارها برای سنجههایی که از آستانههای تعریفشده فراتر میروند پشتیبانی میکند. برای جلوگیری از سردرگمی با این آستانههای پیکربندیپذیر برای سنجههای عملکرد، امکان پیکربندی آستانهها را برای مشکلات برداشتیم.
اطلاعات «جزئیات و سنجهها» در کنسول Firebase چه شد؟
برای بهبود نحوه عیبیابی مشکلات، صفحات «جزئیات» و «سنجهها» را با واسط کاربر (UI) جدیداً طراحیشده و متمرکز جایگزین کردیم. این واسط کاربر عیبیابی جدید همان عملکرد اصلی را که «جزئیات» و «سنجهها» ارائه میدادند ارائه میدهد. برای کسب اطلاعات بیشتر درباره عیبیابی، به مشاهده دادههای بیشتر برای ردیابی خاص مراجعه کنید.
چرا تعداد نمونهها آن چیزی نیست که انتظار دارم؟
Performance Monitoring دادههای عملکرد را از دستگاههای کاربران برنامهتان جمعآوری میکند. اگر برنامه شما کاربران زیادی دارد یا اگر برنامه مقدار زیادی فعالیت عملکرد تولید میکند، Performance Monitoring ممکن است جمعآوری دادهها را به زیرمجموعهای از دستگاهها محدود کند تا تعداد رویدادهای پردازششده را کاهش دهد. این محدودیتها بهاندازه کافی بالا هستند تا حتی با رویدادهای کمتر، مقادیر سنجه همچنان نشاندهنده تجربه کاربر از برنامه شما باشد.
برای مدیریت حجم دادههایی که جمعآوری میکنیم، Performance Monitoring از گزینههای نمونهگیری زیر استفاده میکند:
محدودیت نرخ در دستگاه: برای جلوگیری از ارسال ناگهانی حجم زیادی از ردپاها توسط دستگاه، تعداد ردپاهای کد و درخواست شبکه ارسالی از دستگاه را به ۳۰۰ رویداد در هر ۱۰ دقیقه محدود میکنیم. این رویکرد از دستگاه دربرابر ابزارهای حلقهای که میتوانند مقادیر زیادی داده عملکرد ارسال کنند محافظت میکند و از اینکه یک دستگاه واحد اندازهگیریهای عملکرد را منحرف کند جلوگیری میکند.
نمونهگیری پویا: Performance Monitoring تعداد محدودی از ردپاهای کد و ردپاهای درخواست شبکه را بهصورت روزانه برای هر برنامه در بین همه کاربران برنامه جمعآوری میکند. نرخ نمونهبرداری پویا در دستگاهها (بااستفاده از Firebase Remote Config) واکشی میشود تا مشخص شود آیا دستگاه تصادفی باید ردپاها را ضبط و ارسال کند یا نه. دستگاهی که برای نمونهگیری انتخاب نشده است هیچ رویدادی ارسال نمیکند. نرخ نمونهبرداری پویا مختص برنامه است و تنظیم میشود تا حجم کلی دادههای جمعآوریشده زیر حد مجاز باقی بماند.
پروژههایی که ادغام BigQuery را فعال کردهاند برای تعداد ردگیریهای درخواست شبکه حد بالاتری دریافت میکنند.
جلسههای کاربر دادههای تکمیلی و مفصلی از دستگاه کاربر ارسال میکنند که برای ضبط و ارسال دادهها به منابع بیشتری نیاز دارد. برای بهحداقل رساندن تأثیر جلسههای کاربر، Performance Monitoring ممکن است تعداد جلسهها را نیز محدود کند.
محدود کردن نرخ سمت سرور: برای اطمینان از اینکه برنامهها از حد نمونهگیری فراتر نمیروند، Performance Monitoring ممکن است از نمونهگیری سمت سرور برای حذف برخیاز رویدادهای دریافتی از دستگاهها استفاده کند. اگرچه این نوع محدودیت اثربخشی سنجههای ما را تغییر نمیدهد، ممکن است باعث تغییرات جزئی در الگوها شود، ازجمله موارد زیر:
- تعداد ردگیریها میتواند با تعداد دفعاتی که قطعهای از کد اجرا شده است متفاوت باشد.
- ردیابیهایی که در کد بههم نزدیک هستند ممکن است هرکدام تعداد نمونههای متفاوتی داشته باشند.
چه اتفاقی برای برگه مشکلات در کنسول افتاد؟
ما برگه «مشکلات» را با معرفی «هشدارها» جایگزین کردیم که وقتی از آستانههایی که تنظیم کردهاید فراتر میروید، بهطور خودکار به شما اطلاع میدهد. دیگر لازم نیست کنسول Firebase را بهصورت دستی بررسی کنید تا وضعیت آستانه را تعیین کنید. برای آشنایی با «هشدارها»، به راهاندازی هشدارها برای مشکلات عملکرد مراجعه کنید.
چه اتفاقی برای برگههای در دستگاه و شبکه در کنسول افتاد؟ چگونه میتوانم ردپاهایی را که در آن صفحهها بوده است ببینم؟
بخش Performance Monitoring کنسول Firebase را بازطراحی کردهایم تا برگه داشبورد سنجههای کلیدی و همه ردپاهای شما را در یک فضا نمایش دهد. بهعنوان بخشی از طراحی مجدد، صفحات در دستگاه و شبکه را حذف کردیم.
جدول ردیابیها در پایین برگه داشبورد همه اطلاعاتی را که برگههای در دستگاه و شبکه نمایش میدهند دارد، اما با چند ویژگی اضافه، ازجمله امکان مرتب کردن ردیابیها براساس درصد تغییر برای یک سنجه خاص. برای مشاهده همه سنجهها و دادههای مربوط به ردیابی خاص، روی نام ردیابی در جدول ردیابیها کلیک کنید.
ردیابیهایتان را در زیربرگهای زیر جدول ردیابیها مشاهده کنید:
- ردپای درخواست شبکه (هم آماده و هم سفارشی) — برگه فرعی درخواستهای شبکه
- ردیابیهای کد سفارشی — برگه فرعی ردیابیهای سفارشی
- ردیابیهای شروع برنامه، برنامه در پیشزمینه، برنامه در پسزمینه — برگه فرعی ردیابیهای سفارشی
- ردیابیهای پردازش صفحهنمایش — برگه فرعی پردازش صفحهنمایش
- ردیابیهای بار کردن صفحه — برگه فرعی بار کردن صفحه
برای جزئیات درباره جدول ردیابیها و مشاهده سنجهها و دادهها، به صفحه نمای کلی کنسول (iOS+ | Android | Web) مراجعه کنید.
چرا تعداد فریمهای آهسته و ثابت با آنچه انتظار داشتم متفاوت است؟
فریمهای پرداز آهسته و فریمهای ثابت با نرخ بازآوری فرضی ۶۰ هرتز محاسبه میشوند. اگر نرخ بازسازی دستگاه کمتر از ۶۰ هرتز باشد، هر قاب زمان پرداز زدن کندتری خواهد داشت زیرا تعداد قابهای پرداز زدهشده در ثانیه کمتر است. زمانهای پردازش کندتر میتواند باعث شود قابهای کند یا منجمد بیشتری گزارش شود زیرا قابهای بیشتری کندتر پردازش میشوند یا منجمد میشوند. بااینحال، اگر نرخ بازسازی دستگاه بیشتر از ۶۰ هرتز باشد، هر قاب زمان پرداز سریعتری خواهد داشت. این امر میتواند باعث شود تعداد کمتری از قابهای کند یا منجمد گزارش شود. این محدودیت فعلی در کیت توسعه نرمافزار Performance Monitoring است.
چرا نمیتوانم ردپای تکهکدها را ببینم؟
برای دیدن عملکرد تکهبرنامهها علاوهبر فعالیت برنامه، مطمئن شوید که برنامهتان از Performance Monitoring Android SDK نسخه ۲۰.۱.۰ یا بالاتر استفاده میکند. برای کسب اطلاعات بیشتر، افزودن «پایش عملکرد» به برنامه را ببینید.
چگونه بفهمم کدام ردپاها به تکهکدها و فعالیتها مربوط هستند؟
هریک از ردپاهای فعالیت و قطعه براساس نام کلاس آن که در برنامهتان تعریف شده است ایجاد میشود. هریک از ردهای صفحه حاوی پیشوند st و بهدنبال آن نام کلاس است. در کنسول Firebase، پیشوند برداشته میشود. برای کسب اطلاعات بیشتر، آشنایی با دادههای عملکرد پردازش صفحه (برنامههای Apple و Android) را ببینید.
چرا تعداد ردپاهای قطعهای که میبینم کمتر از ردپاهای دیگر است؟
Performance Monitoring نمونهگیری رویداد را در همه رویدادهای جمعآوریشده در دستگاه انجام میدهد. این رویکرد به ما امکان میدهد حداقل رویدادهای موردنیاز را از دستگاههای کاربر جمعآوری کنیم تا سنجههای عملکرد را ارائه دهیم.
وقتی مشکلی در عملکرد پردازنده برنامه من وجود دارد، چگونه به من اطلاع داده میشود؟
Performance Monitoring به شما امکان میدهد برای سنجههایی که برایتان مهم است هشدار تنظیم کنید. برای ردهای پرداز صفحه تولیدشده، میتوانید هشدار تنظیم کنید تا وقتی درصد قابهای کُند و منجمد از آستانهای که تنظیم کردهاید فراتر رفت به شما اطلاع دهد.
زمانهای ساخت من پساز فعال کردن افزایه Performance Monitoring Gradle زیاد است. چگونه میتوانم این را بهبود دهم؟
Performance Monitoring برای Android از ابزار دقیق کدبایت برای ارائه برخی ویژگیهای آماده استفاده مثل پایش درخواستهای شبکه HTTP/S استفاده میکند. بهعنوان بخشی از گردآوری، این فرایند نیازمند تکرار در همه کلاسهای برنامه شما (ازجمله وابستگیها) برای ابزاربندی کدی است که در اندازهگیری عملکرد درخواست شبکه برنامه شما حیاتی است.
در اینجا چند عامل کلیدی که باعث افزایش زمان ساخت میشوند آورده شده است:
- تعداد کلاسها یا فایلها
- اندازه هریک از آن کلاسها (خطوط کد)
- پیکربندی ماشین شما
- ساخت اولیه دربرابر ساخت بعدی (ساختهای بعدی معمولاً سریعتر از ساخت اولیه هستند)
برای بهینهسازی زمان ساخت، کدتان را واحدبندی کنید.
از v1.3.3 افزایه Performance Monitoring، تمرکز ما بر ایجاد بهبودهای قابلتوجه در پردازش ساخت افزایشی و ذخیره کردن ورودیهای کتابخانه در حافظه نهان بوده است. برای دریافت جدیدترین بهبودهای زمان ساخت، حتماً از جدیدترین نسخه افزایه (نسخه ۲.۰.۲) استفاده کنید.
توجه داشته باشید که اگر میخواهید از زمانهای طولانی ساخت جلوگیری کنید، میتوانید افزایه Performance Monitoring را برای ساختهای اشکالزدایی خود بهصورت محلی غیرفعال کنید. بااینحال، این رویکرد برای ساختهای تولید توصیه نمیشود، زیرا میتواند منجر به ازدست رفتن اندازهگیریهای عملکرد برای درخواستهای شبکه در برنامه شما شود.
اگر بهدلیل ناسازگاری کتابخانهها با افزایه Performance Monitoring Gradle خطاهای ساخت دریافت کنم، چه کاری باید انجام دهم؟
Performance Monitoring برای Android از ابزار دقیق کدبایت برای ارائه برخی ویژگیهای آماده استفاده مثل پایش درخواستهای شبکه HTTP/S استفاده میکند. بهعنوان بخشی از گردآوری، این فرایند نیازمند تکرار در همه کلاسهای برنامه شما (ازجمله وابستگیها) برای ابزاربندی کدی است که در اندازهگیری عملکرد درخواست شبکه برنامه شما حیاتی است.
اگر پساز یکپارچهسازی با افزایه Performance Monitoring، خطاهای ساختاری مثل JSR/RET are not supported with
computeFrames option یا خطاهای مشابه دریافت کردید،
این ممکن است به این دلیل باشد که شما همچنین به کتابخانهای وابسته هستید که با افزایه Performance Monitoring Gradle ناسازگار است.
برای دور زدن این مشکل، میتوانید کلاسها/کتابخانههای ناسازگار را با دنبال کردن این مراحل از ابزاربندی شدن مستثنا کنید:
- به جدیدترین نسخه افزایه Performance Monitoring Gradle (حداقل v1.4.0) بهروزرسانی کنید.
- نسخه افزایه Android Gradle را به v7.2.0 یا جدیدتر بهروز کنید.
- پرچم زیر را به فایل
build.gradleواحد (سطح برنامه) اضافه کنید تا کلاسها/کتابخانههای ناسازگار از ابزاربندی شدن مستثنا شوند: برای کسب اطلاعات بیشتر درباره داراییandroid { // ... androidComponents { onVariants(selector().all(), { instrumentation.excludes.add("example.incompatible.library") }) } }
excludeدر APIInstrumentationافزایه Android Gradle، به ابزار دقیق مراجعه کنید.
لطفاً وقتی بهدلیل کتابخانههای ناسازگار با خطاهای ساخت مواجه شدید، مشکلی در Github ثبت کنید تا این کتابخانهها نیز بتوانند از ابزاربندی در افزایه Performance Monitoring مستثنا شوند.
صادر کردن دادههای Performance Monitoring به BigQuery بیشتر از حد انتظار طول میکشد. آیا همزمان نیست؟
اگر ادغام BigQuery را برای Firebase Performance Monitoring فعال کرده باشید، دادههایتان ۱۲ تا ۲۴ ساعت پساز پایان روز (به وقت اقیانوس آرام) به BigQuery صادر خواهد شد.
برای مثال، دادههای ۱۹ آوریل در ۲۰ آوریل بین ساعت ۱۲ ظهر و نیمهشب در BigQuery دردسترس خواهد بود (همه تاریخها و زمانها به وقت اقیانوس آرام است).
چند الگوی نشانی وب سفارشی میتوانم ایجاد کنم؟
میتوانید درمجموع حداکثر ۴۰۰ الگوی نشانی وب سفارشی برای هر برنامه و حداکثر ۱۰۰ الگوی نشانی وب سفارشی برای هر دامنه برای آن برنامه ایجاد کنید.
پردازش و نمایش دادهها تقریباً بهطور همزمان
دادههای عملکرد «تقریباً همزمان» به چه معنا است؟
Firebase Performance Monitoring دادههای عملکرد جمعآوریشده را بهمحض دریافت پردازش میکند که منجر به نمایش دادههای تقریباً همزمان در کنسول Firebase میشود. دادههای پردازششده ظرف چند دقیقه پساز جمعآوری در کنسول نمایش داده میشود، ازاینرو از اصطلاح «تقریباً همزمان» استفاده میشود.
برای بهرهمندی از پردازش داده تقریباً بیدرنگ، مطمئن شوید که برنامه شما از نسخه سازگار با زمان واقعی کیت توسعه نرمافزار استفاده میکند.
چگونه میتوانم دادههای عملکرد تقریباً همزمان برای برنامهام دریافت کنم؟
برای بهرهمندی از پردازش داده تقریباً همزمان، فقط باید مطمئن شوید که برنامهتان از نسخه Performance Monitoring کیت توسعه نرمافزار سازگار با پردازش داده همزمان استفاده میکند.
اینها نسخههای کیت توسعه نرمافزار سازگار با زمان واقعی هستند:
- iOS — نسخه ۷.۳.۰ یا جدیدتر
- tvOS — نسخه ۸.۹.۰ یا بالاتر
- Android — نسخه ۱۹.۰.۱۰ یا جدیدتر (یا Firebase Android BoM نسخه ۲۶.۱.۰ یا جدیدتر)
- وب — نسخه ۷.۱۴.۰ یا بالاتر
توجه داشته باشید که ما همیشه توصیه میکنیم از جدیدترین نسخه کیت توسعه نرمافزار استفاده کنید، اما هر نسخه فهرستشده در بالا به Performance Monitoring امکان میدهد دادههایتان را تقریباً در زمان واقعی پردازش کند.
کدام نسخههای کیت توسعه نرمافزار Performance Monitoring سازگار با زمان واقعی درنظر گرفته میشوند؟
اینها نسخههای کیت توسعه نرمافزار سازگار با پردازش دادههای همزمان هستند:
- iOS — نسخه ۷.۳.۰ یا جدیدتر
- tvOS — نسخه ۸.۹.۰ یا بالاتر
- Android — نسخه ۱۹.۰.۱۰ یا جدیدتر (یا Firebase Android BoM نسخه ۲۶.۱.۰ یا جدیدتر)
- وب — نسخه ۷.۱۴.۰ یا بالاتر
توجه داشته باشید که ما همیشه توصیه میکنیم از جدیدترین نسخه کیت توسعه نرمافزار استفاده کنید، اما هر نسخه فهرستشده در بالا به Performance Monitoring امکان میدهد دادههایتان را تقریباً در زمان واقعی پردازش کند.
اگر برنامهام را بهروز نکنم تا از نسخه سازگار با کیت توسعه نرمافزار بیدرنگ استفاده کند، چه میشود؟
اگر برنامه شما از نسخه سازگار با زمان واقعی کیت توسعه نرمافزار استفاده نمیکند، همچنان همه دادههای عملکرد برنامهتان را در کنسول Firebase خواهید دید. بااینحال، نمایش دادههای عملکرد تقریباً ۳۶ ساعت پساز زمان جمعآوری آنها به تعویق خواهد افتاد.
به نسخه کیت توسعه نرمافزار سازگار با زمان واقعی بهروزرسانی کردهام، اما برخیاز کاربرانم هنوز از نسخههای قدیمی برنامهام استفاده میکنند. آیا همچنان دادههای عملکرد آنها را در کنسول Firebase میبینم؟
بله! صرفنظر از اینکه نمونه برنامه از کدام نسخه کیت توسعه نرمافزار استفاده میکند، دادههای عملکرد همه کاربران را خواهید دید.
بااینحال، اگر به دادههای اخیر (کمتر از تقریباً ۳۶ ساعت) نگاه میکنید، دادههای نمایشدادهشده از کاربران نمونههای برنامه است که از نسخه کیت توسعه نرمافزار سازگار با زمان واقعی استفاده میکنند. بااینحال، دادههای غیرجدید شامل دادههای عملکرد از همه نسخههای برنامهتان میشود.
چرا نمایش همزمان دادههای عملکرد را نمیبینم؟
برای مشاهده دادههای عملکرد همزمان، مطمئن شوید که برنامه شما از نسخه Performance Monitoring کیت توسعه نرمافزار که با پردازش دادههای همزمان سازگار است استفاده میکند.
- iOS — نسخه ۷.۳.۰ یا جدیدتر
- tvOS — نسخه ۸.۹.۰ یا بالاتر
- Android — نسخه ۱۹.۰.۱۰ یا جدیدتر (یا Firebase Android BoM نسخه ۲۶.۱.۰ یا جدیدتر)
- وب — نسخه ۷.۱۴.۰ یا بالاتر
توجه داشته باشید که ما همیشه توصیه میکنیم از جدیدترین نسخه کیت توسعه نرمافزار استفاده کنید، اما هر نسخه فهرستشده در بالا به Performance Monitoring امکان میدهد دادههایتان را تقریباً در زمان واقعی پردازش کند.
تماس با پشتیبانی Firebase
اگر با پشتیبانی Firebase تماس میگیرید، همیشه «شناسه برنامه Firebase» خود را ذکر کنید. «شناسه برنامه Firebase» را در کارت برنامههای شما در settings تنظیمات پروژه پیدا کنید.