این صفحه نکتههای عیبیابی برای شروع کار با 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 را بررسی کنید تا ببینید آیا قطعی شناختهشدهای برای Firebase یا Performance Monitoring وجود دارد یا نه.
شروع به کار با Performance Monitoring
اگر تازه کار با Performance Monitoring را شروع کردهاید (iOS+ | Android | Web)، نکات عیبیابی زیر میتواند به رفع مشکلات مربوط به تشخیص کیت توسعه نرمافزار توسط Firebase یا نمایش اولین دادههای عملکرد در کنسول Firebase کمک کند.
کیت توسعه نرمافزار به برنامه اضافه شده است، اما کنسول هنوز میگوید کیت توسعه نرمافزار را اضافه کنید
Firebase میتواند تشخیص دهد که آیا Performance Monitoring SDK را با موفقیت به برنامهتان اضافه کردهاید یا نه وقتی اطلاعات رویداد (مانند تعاملات برنامه) را از برنامهتان دریافت میکند. معمولاً ظرف ۱۰ دقیقه پساز شروع برنامهتان، داشبورد عملکرد کنسول Firebase پیام «SDK شناسایی شد» را نمایش میدهد. سپس، ظرف ۳۰ دقیقه، داشبورد دادههای پردازششده اولیه را نمایش میدهد.
اگر بیشاز ۱۰ دقیقه از زمانی که جدیدترین نسخه کیت توسعه نرمافزار را به برنامهتان اضافه کردهاید میگذرد و هنوز تغییری نمیبینید، پیامهای گزارش را بررسی کنید تا مطمئن شوید Performance Monitoring رویدادها را ثبت میکند. برای عیبیابی پیام تشخیص تأخیر کیت توسعه نرمافزار، مراحل عیبیابی مناسب را که در زیر شرح داده شده است امتحان کنید.
برنامه درحال ثبت رویدادها است: مراحل عیبیابی
مطمئن شوید که از Performance Monitoring Android SDK نسخه ۱۹.۱.۰ یا جدیدتر (یا Firebase BoM نسخه ۲۶.۳.۰ یا جدیدتر) استفاده میکنید، یادداشت انتشار را ببینید.
اگر هنوز درحال توسعه محلی هستید، سعی کنید رویدادهای بیشتری برای جمعآوری دادهها ایجاد کنید:
- با جابهجا کردن برنامهتان بین پسزمینه و پیشزمینه برای چند بار، تعامل با برنامهتان ازطریق پیمایش در صفحهها، و/یا راهاندازی درخواستهای شبکه، رویداد ایجاد کنید.
مطمئن شوید که فایل پیکربندی Firebase (
google-services.json) بهدرستی به برنامهتان اضافه شده باشد و فایل را اصلاح نکرده باشید. بهطور مشخص، موارد زیر را بررسی کنید:نویسههای اضافی به نام فایل پیکربندی اضافه نشده باشد، مثل
(2).فایل پیکربندی در فهرست راهنمای واحد (سطح برنامه) برنامه شما قرار دارد.
شناسه برنامه Firebase Android (
mobilesdk_app_id) فهرستشده در فایل پیکربندی برای برنامه شما صحیح است. شناسه برنامه Firebase خود را در کارت برنامههای شما در settings تنظیمات پروژه پیدا کنید.
اگر بهنظر میرسد مشکلی در فایل پیکربندی برنامهتان وجود دارد، موارد زیر را امتحان کنید:
فایل پیکربندی را که درحالحاضر در برنامهتان دارید حذف کنید.
این دستورالعملها را دنبال کنید تا فایل پیکربندی جدیدی بارگیری کنید و آن را به برنامه Android خود اضافه کنید.
اگر SDK رویدادها را ثبت میکند و بهنظر میرسد همه چیز بهدرستی راهاندازی شده است، اما هنوز پیام تشخیص SDK یا دادههای پردازششده را نمیبینید (پساز ۱۰ دقیقه)، با پشتیبانی Firebase تماس بگیرید.
برنامه رویدادها را ثبت نمیکند: مراحل عیبیابی
راهاندازی افزایه Gradle Performance Monitoring را بهصورت زیر بررسی کنید:
مطمئن شوید که افزونه را بهدرستی اضافه کردهاید. بهطور مشخص، موارد زیر را بررسی کنید:
- افزونه (
) را در فایلapply plugin: 'com.google.firebase.firebase-perf' build.gradleمدول (سطح برنامه) خود اضافه کردهاید. - وابستگی classpath را برای افزونه
(
) در فایل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 کمک کند.
برنامه رویدادهای عملکرد را ثبت نمیکند
اگر پیامهای گزارش را برای رویدادهای عملکرد نمیبینید، مراحل عیبیابی زیر را امتحان کنید:
راهاندازی افزایه Gradle Performance Monitoring را بهصورت زیر بررسی کنید:
مطمئن شوید که افزونه را بهدرستی اضافه کردهاید. بهطور مشخص، موارد زیر را بررسی کنید:
- افزونه (
) را در فایلapply plugin: 'com.google.firebase.firebase-perf' build.gradleمدول (سطح برنامه) خود اضافه کردهاید. - وابستگی classpath را برای افزونه
(
) در فایل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 (نسخه ۲۳.۰.۱) استفاده میکنید. ردگیریهای رندر کردن صفحهنمایش فقط با نسخه ۱۵.۲.۰ یا بالاتر دردسترس است.
مطمئن شوید که شتاب سختافزاری را بهطور دستی برای صفحهنمایش غیرفعال نکرده باشید.
مطمئن شوید که از DexGuard یا Jack استفاده نمیکنید. Performance Monitoring با این زنجیرههای ابزار ناسازگار است.
DexGuard جمعآوری خودکار ردهای شروع برنامه، برنامه در پیشزمینه، و برنامه در پسزمینه را غیرفعال میکند. بااینحال، اگر برنامهتان از DexGuard استفاده میکند، هرگونه ردیابی کد سفارشی باید بهطور عادی رفتار کند.
Jack منسوخ شده است و بهطور کلی نباید در برنامهتان استفاده شود.
داشبورد عملکرد فاقد دادههای ردیابی سفارشی است
آیا دادههای عملکرد را برای ردیابیهای جمعآوریشده بهطور خودکار میبینید اما برای ردیابیهای کد سفارشی نمیبینید؟ مراحل عیبیابی زیر را امتحان کنید:
اگر ردیابیهای کد سفارشی را ازطریق Trace API ابزارگذاری کردهاید، راهاندازی ردیابیها را بررسی کنید، بهویژه موارد زیر:
- نامهای ردهای کد سفارشی و سنجههای سفارشی باید شرایط زیر را داشته باشند: بدون فاصله سفید در ابتدا یا انتها، بدون نویسه زیرخط (
_) در ابتدا، و حداکثر طول ۳۲ نویسه. - همه ردیابیها باید شروع و متوقف شوند. هر ردی که شروع نشده باشد، متوقف نشده باشد، یا قبلاز شروع متوقف شده باشد، ثبت نخواهد شد.
- نامهای ردهای کد سفارشی و سنجههای سفارشی باید شرایط زیر را داشته باشند: بدون فاصله سفید در ابتدا یا انتها، بدون نویسه زیرخط (
اگر ردگیریهای کد سفارشی را ازطریق نمادگذاری
@AddTraceابزارگذاری کردهاید، راهاندازی افزونه Gradle Performance Monitoring را بررسی کنید:مطمئن شوید که افزونه را بهدرستی اضافه کردهاید. بهطور مشخص، موارد زیر را بررسی کنید:
- افزونه (
) را در فایلapply plugin: 'com.google.firebase.firebase-perf' build.gradleمدول (سطح برنامه) خود اضافه کردهاید. - وابستگی classpath را برای افزونه
(
) در فایل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 را برای افزونه
(
) در فایلclasspath 'com.google.firebase:perf-plugin:2.0.2' build.gradleسطح پروژه خود اضافه کردهاید.
- افزونه (
مطمئن شوید که افزونه ازطریق هیچکدام از پرچمهای زیر غیرفعال نشده باشد:
instrumentationEnabledدر فایلbuild.gradleواحدتان (سطح برنامه)firebasePerformanceInstrumentationEnabledدر فایلgradle.properties
بررسی ناسازگاری کتابخانه شبکه. Performance Monitoring بهطور خودکار سنجههای درخواستهای شبکه را که از کتابخانههای شبکهسازی زیر استفاده میکنند جمعآوری میکند: OkHttp 3.x.x، URLConnection متعلق به Java، و 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 | وب) مراجعه کنید.
چرا تعداد فریمهای آهسته و ثابت آن چیزی نیست که انتظار داشتم؟
قابهای پرداز آهسته و قابهای ثابت با فرض اینکه نرخ بازآوری دستگاه ۶۰ هرتز است محاسبه میشوند. اگر نرخ بازآوری دستگاه کمتر از ۶۰ هرتز باشد، هر قاب زمان پرداز زدن کندتری خواهد داشت زیرا قابهای کمتری در ثانیه پرداز زده میشود. زمان پرداز زدن آهستهتر میتواند باعث شود قابهای آهسته یا ثابت بیشتری گزارش شود چون قابهای بیشتری آهستهتر پرداز زده میشوند یا ثابت میمانند. اما اگر نرخ بازآوری دستگاهی بیشتر از ۶۰ هرتز باشد، هر فریم زمان پرداز زدن سریعتری خواهد داشت. این امر میتواند باعث شود فریمهای کند یا ثابت کمتری گزارش شود. این محدودیت فعلی در کیت توسعه نرمافزار Performance Monitoring است.
چرا نمیتوانم رد قطعهها را ببینم؟
برای دیدن عملکرد قطعهها علاوهبر فعالیت برنامه، مطمئن شوید که برنامهتان از Performance Monitoring کیت توسعه نرمافزار Android نسخه ۲۰.۱.۰ یا بالاتر استفاده میکند. برای کسب اطلاعات بیشتر، به افزودن «پایش عملکرد» به برنامه مراجعه کنید.
چگونه بفهمم کدام ردگیریها به قطعهها و فعالیتها مربوط است؟
هریک از ردهای قطعه و فعالیت براساس نام کلاس آن که در برنامهتان تعریف شده است ایجاد میشود. هریک از ردگیریهای صفحه حاوی پیشوند st و بهدنبال آن نام کلاس است. در کنسول Firebase، پیشوند برداشته میشود. برای کسب اطلاعات بیشتر، آشنایی با دادههای عملکرد پردازشی صفحهنمایش (برنامههای Apple و Android) را ببینید.
چرا ردگیریهای قطعه کمتری نسبتبه ردگیریهای دیگر میبینم؟
Performance Monitoring نمونهگیری رویداد را در همه رویدادهای جمعآوریشده در دستگاه انجام میدهد. این رویکرد به ما امکان میدهد حداقل رویدادهای موردنیاز را از دستگاههای کاربر جمعآوری کنیم تا سنجههای عملکرد را ارائه دهیم.
چگونه از وجود مشکل در عملکرد پردازش برنامهام مطلع میشوم؟
Performance Monitoring به شما امکان میدهد برای سنجههایی که برایتان مهم است هشدار تنظیم کنید. برای ردگیریهای تولیدشده پرداخت صفحه، میتوانید هشدارهایی راهاندازی کنید تا وقتی درصد فریمهای کند و ثابت از آستانهای که تنظیم کردهاید فراتر رفت، به شما اطلاع داده شود.
پساز فعال کردن افزایه Gradle Performance Monitoring، زمانهای ساخت من زیاد است. چگونه میتوانم این را بهبود دهم؟
Performance Monitoring برای Android از ابزارسازی بایتکد برای ارائه برخی ویژگیهای آماده استفاده مانند پایش درخواستهای شبکه HTTP/S استفاده میکند. بهعنوان بخشی از کامپایل، این فرایند به تکرار در تمام کلاسهای برنامه شما (ازجمله وابستگیها) نیاز دارد تا کدی را که برای اندازهگیری عملکرد درخواست شبکه برنامه شما حیاتی است، ابزارسازی کند.
در اینجا چند عامل کلیدی در افزایش زمان ساخت آورده شده است:
- تعداد کلاسها یا فایلها
- اندازه هرکدام از آن کلاسها (خطوط کد)
- پیکربندی دستگاه شما
- ساخت اولیه درمقابل ساخت بعدی (ساختهای بعدی معمولاً سریعتر از ساخت اولیه هستند)
برای بهینهسازی زمان ساخت، مدولار کردن کد را درنظر بگیرید.
از نسخه ۱.۳.۳ افزونه Performance Monitoring، تمرکزمان را بر ایجاد بهبودهای قابلتوجه در پردازش ساخت افزایشی و ذخیره ورودیهای کتابخانه در حافظه نهان گذاشتهایم. برای دریافت جدیدترین بهبودهای زمان ساخت، حتماً از جدیدترین نسخه افزونه (نسخه ۲.۰.۲) استفاده کنید.
توجه داشته باشید که اگر میخواهید از زمانهای طولانی ساخت اجتناب کنید، میتوانید افزونه Performance Monitoring را برای ساختهای اشکالزدایی بهصورت محلی غیرفعال کنید. بااینحال، این رویکرد برای نسخههای تولید توصیه نمیشود، زیرا میتواند منجر به ازدست رفتن اندازهگیریهای عملکرد برای درخواستهای شبکه در برنامه شما شود.
اگر بهدلیل ناسازگاری کتابخانهها با افزونه Gradle Performance Monitoring خطای ساخت دریافت کردم چه کاری باید انجام دهم؟
Performance Monitoring برای Android از ابزارسازی بایتکد برای ارائه برخی ویژگیهای آماده استفاده مانند پایش درخواستهای شبکه HTTP/S استفاده میکند. بهعنوان بخشی از کامپایل، این فرایند به تکرار در تمام کلاسهای برنامه شما (ازجمله وابستگیها) نیاز دارد تا کدی را که برای اندازهگیری عملکرد درخواست شبکه برنامه شما حیاتی است، ابزارسازی کند.
اگر پساز ادغام با افزونه Performance Monitoring خطاهای ساخت مانند JSR/RET are not supported with
computeFrames option یا خطاهای مشابه دریافت میکنید،
ممکن است به این دلیل باشد که به کتابخانهای وابستگی دارید که با افزونه Gradle Performance Monitoring ناسازگار است.
برای دور زدن این مشکل، میتوانید با دنبال کردن این مراحل، کلاسها/کتابخانههای ناسازگار را از ابزارسازی مستثنی کنید:
- به جدیدترین نسخه افزایه Gradle Performance Monitoring (حداقل نسخه ۱.۴.۰) بهروزرسانی کنید.
- نسخه افزایه Android Gradle را به نسخه ۷.۲.۰ یا جدیدتر بهروز کنید.
- پرچم زیر را به فایل
build.gradle(سطح برنامه) واحدتان اضافه کنید تا کلاسها/کتابخانههای ناسازگار از ابزاربندی مستثنی شوند: برای کسب اطلاعات بیشتر درباره ویژگیandroid { // ... androidComponents { onVariants(selector().all(), { instrumentation.excludes.add("example.incompatible.library") }) } }
excludeاز میانای برنامهسازی کاربردیInstrumentationافزایه Android Gradle، به ابزارسازی مراجعه کنید.
لطفاً وقتی بهدلیل کتابخانههای ناسازگار با خطاهای ساخت مواجه میشوید، مشکل Github را ثبت کنید تا بتوان آنها را نیز از ابزارسازی در افزونه Performance Monitoring مستثنی کرد.
صادر کردن دادههای Performance Monitoring من به BigQuery بیشتر از حد انتظار طول میکشد. آیا همزمان نیست؟
اگر ادغام BigQuery را برای Firebase Performance Monitoring فعال کرده باشید، دادههایتان ۱۲ تا ۲۴ ساعت پساز پایان روز (بهوقت اقیانوس آرام) به BigQuery صادر خواهد شد.
برای مثال، دادههای ۱۹ آوریل در ۲۰ آوریل بین ساعت ۱۲:۰۰ ظهر و نیمهشب در BigQuery دردسترس خواهد بود (همه تاریخها و زمانها براساس وقت اقیانوس آرام است).
چند الگوی نشانی وب سفارشی میتوانم ایجاد کنم؟
میتوانید درمجموع حداکثر ۴۰۰ الگوی نشانی وب سفارشی برای هر برنامه و حداکثر ۱۰۰ الگوی نشانی وب سفارشی برای هر دامنه آن برنامه ایجاد کنید.
پردازش و نمایش دادهها تقریباً بهطور همزمان
منظور از دادههای عملکرد «تقریباً همزمان» چیست؟
Firebase Performance Monitoring دادههای عملکرد جمعآوریشده را بهمحض دریافت پردازش میکند، که منجر به نمایش دادهها بهصورت تقریباً همزمان در کنسول Firebase میشود. دادههای پردازششده ظرف چند دقیقه پساز جمعآوری در کنسول نمایش داده میشود، بنابراین اصطلاح «تقریباً همزمان» بهکار میرود.
برای بهرهمندی از پردازش دادههای تقریباً همزمان، مطمئن شوید که برنامهتان از نسخه کیت توسعه نرمافزار سازگار با همزمان استفاده میکند.
چگونه میتوانم دادههای عملکرد تقریباً همزمان را برای برنامهام دریافت کنم؟
برای بهرهمندی از پردازش دادههای تقریباً همزمان، فقط باید مطمئن شوید که برنامهتان از نسخه کیت توسعه نرمافزار Performance Monitoring که با پردازش دادههای همزمان سازگار است استفاده میکند.
نسخههای سازگار کیت توسعه نرمافزار (SDK) همزمان ازاینقرارند:
- 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 App را در کارت برنامههای شما در settings تنظیمات پروژه پیدا کنید.