پیمایش گزارش Systrace، پیمایش در گزارش Systrace، پیمایش در گزارش Systrace

این راهنما نحوه پیمایش و تفسیر گزارش Systrace را توضیح می دهد. برای تفسیر گزارش Perfetto، به مستندات Trace Processor مراجعه کنید.

عناصر یک گزارش معمولی

Systrace یک فایل HTML خروجی تولید می کند که شامل یک سری بخش است. این گزارش رشته های هر فرآیند را فهرست می کند. اگر یک رشته مفروض فریم های UI را ارائه کند، گزارش فریم های رندر شده را در امتداد خط زمانی نیز نشان می دهد. زمانی که در طول گزارش از چپ به راست حرکت می کنید، زمان در جهت جلو می گذرد.

از بالا به پایین، گزارش شامل بخش های زیر است.

تعاملات کاربر

بخش اول شامل نوارهایی است که نشان دهنده تعاملات خاص کاربر در برنامه یا بازی شما است، مانند ضربه زدن بر روی صفحه نمایش دستگاه. این تعاملات به عنوان نشانگرهای زمانی مفید عمل می کنند.

فعالیت CPU

بخش بعدی میله هایی را نشان می دهد که فعالیت نخ را در هر CPU نشان می دهد. نوارها فعالیت CPU را در همه برنامه‌ها، از جمله برنامه یا بازی شما، نشان می‌دهند.

بخش فعالیت CPU قابل گسترش است و به شما امکان می دهد فرکانس ساعت را برای هر CPU مشاهده کنید. شکل 1 نمونه ای از یک بخش فعالیت CPU جمع شده را نشان می دهد و شکل 2 یک نسخه توسعه یافته را نشان می دهد که فرکانس ساعت را نمایش می دهد:

اسکرین شات گزارش Systrace
شکل 1. نمونه فعالیت CPU (نمای جمع شده) در گزارش Systrace

اسکرین شات گزارش Systrace
شکل 2. نمونه فعالیت CPU (نمای توسعه یافته) که فرکانس ساعت CPU را در گزارش Systrace نشان می دهد.

رویدادهای سیستم

هیستوگرام های موجود در این بخش رویدادهای خاص در سطح سیستم، مانند تعداد بافت و اندازه کل اشیاء خاص را نشان می دهد.

هیستوگرامی که ارزش بررسی دقیق‌تری دارد، هیستوگرام با برچسب SurfaceView است. شمارش تعداد بافرهای فریم تشکیل‌شده را نشان می‌دهد که به خط لوله نمایش داده شده‌اند و در انتظار نمایش در صفحه دستگاه هستند. از آنجایی که اکثر دستگاه‌ها دارای بافر دو یا سه‌گانه هستند، این تعداد تقریباً همیشه 0، 1 یا 2 است.

سایر هیستوگرام‌هایی که فرآیند Surface Flinger را نشان می‌دهند، از جمله رویدادهای VSync و کار تعویض thread UI، در شکل 3 نشان داده شده‌اند:

اسکرین شات گزارش Systrace
شکل 3. نمونه نمودار سرفیس فلینگر در گزارش Systrace

قاب های نمایشی

این بخش که اغلب بلندترین بخش در گزارش است، یک خط چند رنگی را به تصویر می‌کشد که پشته‌هایی از میله‌ها را دنبال می‌کند. این اشکال نشان دهنده وضعیت و پشته فریم یک رشته خاص است که ایجاد شده است. هر سطح از پشته نشان‌دهنده فراخوانی به beginSection() یا آغاز یک رویداد ردیابی سفارشی است که برای برنامه یا بازی خود تعریف کرده‌اید.

خط رنگارنگ بالای هر پشته از میله ها مجموعه ای از وضعیت های یک رشته خاص را در طول زمان نشان می دهد. هر بخش از خط می تواند دارای یکی از رنگ های زیر باشد:

سبز: دویدن
رشته در حال تکمیل کار مربوط به یک فرآیند است یا در حال پاسخ به یک وقفه است.
آبی: قابل اجرا
موضوع برای اجرا در دسترس است اما در حال حاضر برنامه ریزی نشده است.
سفید: در حال خواب
thread کاری برای انجام ندارد، شاید به این دلیل که نخ روی یک قفل mutex مسدود شده است.
نارنجی: خواب بی وقفه
رشته در ورودی/خروجی مسدود شده است یا منتظر تکمیل عملیات دیسک است.
بنفش: خواب قابل وقفه
این موضوع در یک عملیات هسته دیگر، معمولاً مدیریت حافظه، مسدود می شود.

میانبرهای صفحه کلید

جدول زیر میانبرهای صفحه کلید موجود در هنگام مشاهده گزارش Systrace را فهرست می کند:

کلید توضیحات
دبلیو روی جدول زمانی ردیابی بزرگنمایی کنید.
الف حرکت به سمت چپ در خط زمانی ردیابی.
اس از جدول زمانی ردیابی بزرگنمایی کنید.
D به سمت راست روی خط زمانی ردیابی حرکت دهید.
E خط زمانی ردیابی را روی مکان فعلی ماوس مرکز کنید.
م انتخاب فعلی را قاب کنید.
1 مدل انتخاب فعال فعلی را به حالت "انتخاب" تغییر دهید. مربوط به دکمه 1 است که در نوار ابزار انتخابگر ماوس ظاهر می شود (تصویر سمت راست را ببینید). اسکرین شات نوار ابزار انتخابگر ماوس در گزارش Systrace
2 مدل انتخاب فعال فعلی را به حالت "pan" تغییر دهید. مربوط به دکمه دوم است که در نوار ابزار انتخابگر ماوس ظاهر می شود (تصویر سمت راست را ببینید). اسکرین شات نوار ابزار انتخابگر ماوس در گزارش Systrace
3 مدل انتخاب فعال فعلی را به حالت "zoom" تغییر دهید. مربوط به دکمه سوم است که در نوار ابزار انتخابگر ماوس ظاهر می شود (تصویر سمت راست را ببینید). اسکرین شات نوار ابزار انتخابگر ماوس در گزارش Systrace
4 مدل انتخاب فعال فعلی را به حالت "زمان بندی" تغییر دهید. مربوط به دکمه چهارم است که در نوار ابزار انتخابگر ماوس ظاهر می شود (تصویر سمت راست را ببینید). اسکرین شات نوار ابزار انتخابگر ماوس در گزارش Systrace
جی شبکه را در شروع کار انتخاب شده فعلی نشان دهید.
Shift + G شبکه را در پایان کار انتخاب شده فعلی نشان دهید.
فلش چپ رویداد قبلی را در جدول زمانی انتخاب شده فعلی انتخاب کنید.
فلش سمت راست رویداد بعدی را در جدول زمانی انتخاب شده فعلی انتخاب کنید.

مشکلات عملکرد را بررسی کنید

هنگام تعامل با گزارش Systrace، می‌توانید میزان استفاده از CPU دستگاه را در طول مدت ضبط بررسی کنید. برای کمک به پیمایش گزارش HTML، بخش میانبرهای صفحه کلید را ببینید یا روی ? دکمه در گوشه سمت راست بالای گزارش.

بخش‌های زیر نحوه بازرسی اطلاعات در گزارش را برای یافتن و رفع مشکلات عملکرد توضیح می‌دهند.

نگرانی های عملکرد را شناسایی کنید

هنگام پیمایش در یک گزارش Systrace، با انجام یک یا چند مورد از موارد زیر می‌توانید نگرانی‌های مربوط به عملکرد را راحت‌تر شناسایی کنید:

  • با کشیدن یک مستطیل در اطراف بازه زمانی، یک بازه زمانی مورد علاقه را انتخاب کنید.
  • با استفاده از ابزار خط کش، یک ناحیه مشکل را علامت گذاری یا برجسته کنید.
  • با کلیک روی View Options > Highlight VSync، هر عملیات بازخوانی نمایشگر را نشان دهید.

فریم‌های رابط کاربری و هشدارها را بررسی کنید

همانطور که در شکل 4 نشان داده شده است، گزارش Systrace هر فرآیندی را که فریم های UI را ارائه می دهد فهرست می کند و هر فریم رندر شده را در امتداد خط زمانی نشان می دهد. فریم هایی که در 16.6 میلی ثانیه مورد نیاز برای حفظ ثبات 60 فریم در ثانیه ارائه می شوند با دایره های قاب سبز نشان داده می شوند. فریم هایی که بیش از 16.6 میلی ثانیه طول می کشد تا با دایره های قاب زرد یا قرمز نشان داده شوند.

بزرگنمایی در نمای یک قاب
شکل 4. نمایش Systrace پس از بزرگنمایی بر روی یک فریم طولانی مدت

با کلیک بر روی یک دایره فریم، آن را برجسته می‌کند و اطلاعات بیشتری درباره کار انجام شده توسط سیستم برای ارائه آن فریم، از جمله هشدارها، ارائه می‌کند. این گزارش همچنین روش هایی را که سیستم در حین رندر کردن آن فریم اجرا می کرد به شما نشان می دهد. شما می‌توانید آن روش‌ها را برای تعیین علل بالقوه UI jank بررسی کنید.

قاب مشکل دار انتخاب شد
شکل 5. با انتخاب قاب مشکل ساز، یک هشدار در زیر گزارش ردیابی ظاهر می شود که مشکل را شناسایی می کند.

پس از انتخاب یک فریم آهسته، ممکن است یک هشدار در قسمت پایین گزارش مشاهده کنید. هشدار نشان داده شده در شکل 5 نشان می دهد که مشکل اصلی قاب این است که زمان زیادی در داخل ListView برای بازیافت و اتصال مجدد صرف می شود. پیوندهایی به رویدادهای مربوطه در ردیابی وجود دارد که بیشتر در مورد آنچه که سیستم در این مدت انجام می دهد توضیح می دهد.

همانطور که در شکل 6 نشان داده شده است، برای مشاهده هر هشداری که ابزار در ردیابی شما پیدا کرده است، و همچنین تعداد دفعاتی که دستگاه هر هشدار را فعال کرده است، روی تب Alerts در سمت راست پنجره کلیک کنید، همانطور که در شکل 6 نشان داده شده است. کدام مشکلات در ردیابی رخ می دهند و هر چند وقت یکبار به جنک کمک می کنند. می توانید این پنل را به عنوان لیستی از باگ هایی که باید برطرف شوند در نظر بگیرید. اغلب، یک تغییر یا بهبود کوچک در یک زمینه می تواند کل مجموعه ای از هشدارها را حذف کند.

برگه هشدار نشان داده شده است
شکل 6. با کلیک بر روی دکمه Alert ، برگه هشدار ظاهر می شود

اگر می بینید که کار زیادی روی رشته UI انجام می شود، از یکی از روش های زیر برای کمک به تعیین اینکه کدام روش ها زمان CPU زیادی مصرف می کنند استفاده کنید:

  • اگر ایده ای دارید که کدام روش ها می توانند باعث ایجاد تنگنا شوند، نشانگرهای ردیابی را به این روش ها اضافه کنید. برای کسب اطلاعات بیشتر، راهنمای نحوه تعریف رویدادهای سفارشی در کد خود را ببینید.
  • اگر در مورد منبع تنگناهای رابط کاربری مطمئن نیستید، از CPU Profiler موجود در Android Studio استفاده کنید. می‌توانید گزارش‌های ردیابی را ایجاد کنید ، و سپس آنها را با استفاده از CPU Profiler وارد و بررسی کنید.
،

این راهنما نحوه پیمایش و تفسیر گزارش Systrace را توضیح می دهد. برای تفسیر گزارش Perfetto، به مستندات Trace Processor مراجعه کنید.

عناصر یک گزارش معمولی

Systrace یک فایل HTML خروجی تولید می کند که شامل یک سری بخش است. این گزارش رشته های هر فرآیند را فهرست می کند. اگر یک رشته مفروض فریم های UI را ارائه کند، گزارش فریم های رندر شده را در امتداد خط زمانی نیز نشان می دهد. زمانی که در طول گزارش از چپ به راست حرکت می کنید، زمان در جهت جلو می گذرد.

از بالا به پایین، گزارش شامل بخش های زیر است.

تعاملات کاربر

بخش اول شامل نوارهایی است که نشان دهنده تعاملات خاص کاربر در برنامه یا بازی شما است، مانند ضربه زدن بر روی صفحه نمایش دستگاه. این تعاملات به عنوان نشانگرهای زمانی مفید عمل می کنند.

فعالیت CPU

بخش بعدی میله هایی را نشان می دهد که فعالیت نخ را در هر CPU نشان می دهد. نوارها فعالیت CPU را در همه برنامه‌ها، از جمله برنامه یا بازی شما، نشان می‌دهند.

بخش فعالیت CPU قابل گسترش است و به شما امکان می دهد فرکانس ساعت را برای هر CPU مشاهده کنید. شکل 1 نمونه ای از یک بخش فعالیت CPU جمع شده را نشان می دهد و شکل 2 یک نسخه توسعه یافته را نشان می دهد که فرکانس ساعت را نمایش می دهد:

اسکرین شات گزارش Systrace
شکل 1. نمونه فعالیت CPU (نمای جمع شده) در گزارش Systrace

اسکرین شات گزارش Systrace
شکل 2. نمونه فعالیت CPU (نمای توسعه یافته) که فرکانس ساعت CPU را در گزارش Systrace نشان می دهد.

رویدادهای سیستم

هیستوگرام های موجود در این بخش رویدادهای خاص در سطح سیستم، مانند تعداد بافت و اندازه کل اشیاء خاص را نشان می دهد.

هیستوگرامی که ارزش بررسی دقیق‌تری دارد، هیستوگرام با برچسب SurfaceView است. شمارش تعداد بافرهای فریم تشکیل‌شده را نشان می‌دهد که به خط لوله نمایش داده شده‌اند و در انتظار نمایش در صفحه دستگاه هستند. از آنجایی که اکثر دستگاه‌ها دارای بافر دو یا سه‌گانه هستند، این تعداد تقریباً همیشه 0، 1 یا 2 است.

سایر هیستوگرام‌هایی که فرآیند Surface Flinger را نشان می‌دهند، از جمله رویدادهای VSync و کار تعویض thread UI، در شکل 3 نشان داده شده‌اند:

اسکرین شات گزارش Systrace
شکل 3. نمونه نمودار سرفیس فلینگر در گزارش Systrace

قاب های نمایشی

این بخش که اغلب بلندترین بخش در گزارش است، یک خط چند رنگی را به تصویر می‌کشد که پشته‌هایی از میله‌ها را دنبال می‌کند. این اشکال نشان دهنده وضعیت و پشته فریم یک رشته خاص است که ایجاد شده است. هر سطح از پشته نشان‌دهنده فراخوانی به beginSection() یا آغاز یک رویداد ردیابی سفارشی است که برای برنامه یا بازی خود تعریف کرده‌اید.

خط رنگارنگ بالای هر پشته از میله ها مجموعه ای از وضعیت های یک رشته خاص را در طول زمان نشان می دهد. هر بخش از خط می تواند دارای یکی از رنگ های زیر باشد:

سبز: دویدن
رشته در حال تکمیل کار مربوط به یک فرآیند است یا در حال پاسخ به یک وقفه است.
آبی: قابل اجرا
موضوع برای اجرا در دسترس است اما در حال حاضر برنامه ریزی نشده است.
سفید: در حال خواب
thread کاری برای انجام ندارد، شاید به این دلیل که نخ روی یک قفل mutex مسدود شده است.
نارنجی: خواب بی وقفه
رشته در ورودی/خروجی مسدود شده است یا منتظر تکمیل عملیات دیسک است.
بنفش: خواب قابل وقفه
این موضوع در یک عملیات هسته دیگر، معمولاً مدیریت حافظه، مسدود می شود.

میانبرهای صفحه کلید

جدول زیر میانبرهای صفحه کلید موجود در هنگام مشاهده گزارش Systrace را فهرست می کند:

کلید توضیحات
دبلیو روی جدول زمانی ردیابی بزرگنمایی کنید.
الف حرکت به سمت چپ در جدول زمانی ردیابی.
اس از جدول زمانی ردیابی بزرگنمایی کنید.
D به سمت راست روی خط زمانی ردیابی حرکت دهید.
E خط زمانی ردیابی را روی مکان فعلی ماوس مرکز کنید.
م انتخاب فعلی را قاب کنید.
1 مدل انتخاب فعال فعلی را به حالت "انتخاب" تغییر دهید. مربوط به دکمه 1 است که در نوار ابزار انتخابگر ماوس ظاهر می شود (تصویر سمت راست را ببینید). اسکرین شات نوار ابزار انتخابگر ماوس در گزارش Systrace
2 مدل انتخاب فعال فعلی را به حالت "pan" تغییر دهید. مربوط به دکمه دوم است که در نوار ابزار انتخابگر ماوس ظاهر می شود (تصویر سمت راست را ببینید). اسکرین شات نوار ابزار انتخابگر ماوس در گزارش Systrace
3 مدل انتخاب فعال فعلی را به حالت "zoom" تغییر دهید. مربوط به دکمه سوم است که در نوار ابزار انتخابگر ماوس ظاهر می شود (تصویر سمت راست را ببینید). اسکرین شات نوار ابزار انتخابگر ماوس در گزارش Systrace
4 مدل انتخاب فعال فعلی را به حالت "زمان بندی" تغییر دهید. مربوط به دکمه چهارم است که در نوار ابزار انتخابگر ماوس ظاهر می شود (تصویر سمت راست را ببینید). اسکرین شات نوار ابزار انتخابگر ماوس در گزارش Systrace
جی شبکه را در شروع کار انتخاب شده فعلی نشان دهید.
Shift + G شبکه را در پایان کار انتخاب شده فعلی نشان دهید.
فلش چپ رویداد قبلی را در جدول زمانی انتخاب شده فعلی انتخاب کنید.
فلش سمت راست رویداد بعدی را در جدول زمانی انتخاب شده فعلی انتخاب کنید.

بررسی مشکلات عملکرد

هنگام تعامل با گزارش Systrace، می‌توانید میزان استفاده از CPU دستگاه را در طول مدت ضبط بررسی کنید. برای کمک به پیمایش گزارش HTML، بخش میانبرهای صفحه کلید را ببینید یا روی ? دکمه در گوشه سمت راست بالای گزارش.

بخش‌های زیر نحوه بازرسی اطلاعات در گزارش را برای یافتن و رفع مشکلات عملکرد توضیح می‌دهند.

نگرانی های عملکرد را شناسایی کنید

هنگام پیمایش در یک گزارش Systrace، با انجام یک یا چند مورد از موارد زیر می‌توانید نگرانی‌های مربوط به عملکرد را راحت‌تر شناسایی کنید:

  • با کشیدن یک مستطیل در اطراف بازه زمانی، یک بازه زمانی مورد علاقه را انتخاب کنید.
  • با استفاده از ابزار خط کش، یک ناحیه مشکل را علامت گذاری یا برجسته کنید.
  • با کلیک روی View Options > Highlight VSync، هر عملیات بازخوانی نمایشگر را نشان دهید.

فریم‌های رابط کاربری و هشدارها را بررسی کنید

همانطور که در شکل 4 نشان داده شده است، گزارش Systrace هر فرآیندی را که فریم های UI را ارائه می دهد فهرست می کند و هر فریم رندر شده را در امتداد خط زمانی نشان می دهد. فریم هایی که در 16.6 میلی ثانیه مورد نیاز برای حفظ ثبات 60 فریم در ثانیه ارائه می شوند با دایره های قاب سبز نشان داده می شوند. فریم هایی که بیش از 16.6 میلی ثانیه طول می کشد تا با دایره های قاب زرد یا قرمز نشان داده شوند.

بزرگنمایی در نمای یک قاب
شکل 4. نمایش Systrace پس از بزرگنمایی بر روی یک فریم طولانی مدت

با کلیک بر روی یک دایره فریم، آن را برجسته می‌کند و اطلاعات بیشتری درباره کار انجام شده توسط سیستم برای ارائه آن فریم، از جمله هشدارها، ارائه می‌کند. این گزارش همچنین روش هایی را که سیستم در حین رندر کردن آن فریم اجرا می کرد به شما نشان می دهد. شما می‌توانید آن روش‌ها را برای تعیین علل بالقوه UI jank بررسی کنید.

قاب مشکل دار انتخاب شد
شکل 5. با انتخاب قاب مشکل ساز، یک هشدار در زیر گزارش ردیابی ظاهر می شود که مشکل را شناسایی می کند.

پس از انتخاب یک فریم آهسته، ممکن است یک هشدار در قسمت پایین گزارش مشاهده کنید. هشدار نشان داده شده در شکل 5 نشان می دهد که مشکل اصلی قاب این است که زمان زیادی در داخل ListView برای بازیافت و اتصال مجدد صرف می شود. پیوندهایی به رویدادهای مربوطه در ردیابی وجود دارد که بیشتر در مورد آنچه که سیستم در این مدت انجام می دهد توضیح می دهد.

همانطور که در شکل 6 نشان داده شده است، برای مشاهده هر هشداری که ابزار در ردیابی شما پیدا کرده است، و همچنین تعداد دفعاتی که دستگاه هر هشدار را فعال کرده است، روی تب Alerts در سمت راست پنجره کلیک کنید، همانطور که در شکل 6 نشان داده شده است. کدام مشکلات در ردیابی رخ می دهند و هر چند وقت یکبار به جنک کمک می کنند. می توانید این پنل را به عنوان لیستی از باگ هایی که باید برطرف شوند در نظر بگیرید. اغلب، یک تغییر یا بهبود کوچک در یک زمینه می تواند کل مجموعه ای از هشدارها را حذف کند.

برگه هشدار نشان داده شده است
شکل 6. با کلیک بر روی دکمه Alert ، برگه هشدار ظاهر می شود

اگر می بینید که کار زیادی روی رشته UI انجام می شود، از یکی از روش های زیر برای کمک به تعیین اینکه کدام روش ها زمان CPU زیادی مصرف می کنند استفاده کنید:

  • اگر ایده ای دارید که کدام روش ها می توانند باعث ایجاد تنگنا شوند، نشانگرهای ردیابی را به این روش ها اضافه کنید. برای کسب اطلاعات بیشتر، راهنمای نحوه تعریف رویدادهای سفارشی در کد خود را ببینید.
  • اگر در مورد منبع تنگناهای رابط کاربری مطمئن نیستید، از CPU Profiler موجود در Android Studio استفاده کنید. می‌توانید گزارش‌های ردیابی را ایجاد کنید ، و سپس آنها را با استفاده از CPU Profiler وارد و بررسی کنید.
،

این راهنما نحوه پیمایش و تفسیر گزارش Systrace را توضیح می دهد. برای تفسیر گزارش Perfetto، به مستندات Trace Processor مراجعه کنید.

عناصر یک گزارش معمولی

Systrace یک فایل HTML خروجی تولید می کند که شامل یک سری بخش است. این گزارش رشته های هر فرآیند را فهرست می کند. اگر یک رشته مفروض فریم های UI را ارائه کند، گزارش فریم های رندر شده را در امتداد خط زمانی نیز نشان می دهد. زمانی که در طول گزارش از چپ به راست حرکت می کنید، زمان در جهت جلو می گذرد.

از بالا به پایین، گزارش شامل بخش های زیر است.

تعاملات کاربر

بخش اول شامل نوارهایی است که نشان دهنده تعاملات خاص کاربر در برنامه یا بازی شما است، مانند ضربه زدن بر روی صفحه نمایش دستگاه. این تعاملات به عنوان نشانگرهای زمانی مفید عمل می کنند.

فعالیت CPU

بخش بعدی میله هایی را نشان می دهد که فعالیت نخ را در هر CPU نشان می دهد. نوارها فعالیت CPU را در همه برنامه‌ها، از جمله برنامه یا بازی شما، نشان می‌دهند.

بخش فعالیت CPU قابل ارتقا است و به شما امکان می دهد فرکانس ساعت را برای هر CPU مشاهده کنید. شکل 1 نمونه ای از یک بخش فعالیت CPU جمع شده را نشان می دهد و شکل 2 یک نسخه توسعه یافته را نشان می دهد که فرکانس ساعت را نمایش می دهد:

اسکرین شات گزارش Systrace
شکل 1. نمونه فعالیت CPU (نمای جمع شده) در گزارش Systrace

اسکرین شات گزارش Systrace
شکل 2. نمونه فعالیت CPU (نمای توسعه یافته) که فرکانس ساعت CPU را در گزارش Systrace نشان می دهد.

رویدادهای سیستم

هیستوگرام های موجود در این بخش رویدادهای خاص در سطح سیستم، مانند تعداد بافت و اندازه کل اشیاء خاص را نشان می دهد.

هیستوگرامی که ارزش بررسی دقیق‌تری دارد، هیستوگرام با برچسب SurfaceView است. شمارش تعداد بافرهای فریم تشکیل‌شده را نشان می‌دهد که به خط لوله نمایش داده شده‌اند و در انتظار نمایش در صفحه دستگاه هستند. از آنجایی که اکثر دستگاه‌ها دارای بافر دو یا سه‌گانه هستند، این تعداد تقریباً همیشه 0، 1 یا 2 است.

سایر هیستوگرام‌هایی که فرآیند Surface Flinger را نشان می‌دهند، از جمله رویدادهای VSync و کار تعویض thread UI، در شکل 3 نشان داده شده‌اند:

اسکرین شات گزارش Systrace
شکل 3. نمونه نمودار سرفیس فلینگر در گزارش Systrace

قاب های نمایشی

این بخش که اغلب بلندترین بخش در گزارش است، یک خط چند رنگی را به تصویر می‌کشد که پشته‌هایی از میله‌ها را دنبال می‌کند. این اشکال نشان دهنده وضعیت و پشته فریم یک رشته خاص است که ایجاد شده است. هر سطح از پشته نشان‌دهنده فراخوانی به beginSection() یا آغاز یک رویداد ردیابی سفارشی است که برای برنامه یا بازی خود تعریف کرده‌اید.

خط رنگارنگ بالای هر پشته از میله ها مجموعه ای از وضعیت های رشته خاصی را در طول زمان نشان می دهد. هر بخش از خط می تواند دارای یکی از رنگ های زیر باشد:

سبز: دویدن
رشته در حال تکمیل کار مربوط به یک فرآیند است یا در حال پاسخ به یک وقفه است.
آبی: قابل اجرا
موضوع برای اجرا در دسترس است اما در حال حاضر برنامه ریزی نشده است.
سفید: در حال خواب
thread کاری برای انجام ندارد، شاید به این دلیل که نخ روی یک قفل mutex مسدود شده است.
نارنجی: خواب بی وقفه
رشته در ورودی/خروجی مسدود شده است یا منتظر تکمیل عملیات دیسک است.
بنفش: خواب قابل وقفه
این موضوع در یک عملیات هسته دیگر، معمولاً مدیریت حافظه، مسدود می شود.

میانبرهای صفحه کلید

جدول زیر میانبرهای صفحه کلید موجود در هنگام مشاهده گزارش Systrace را فهرست می کند:

کلید توضیحات
دبلیو روی جدول زمانی ردیابی بزرگنمایی کنید.
الف حرکت به سمت چپ در خط زمانی ردیابی.
اس از جدول زمانی ردیابی بزرگنمایی کنید.
D به سمت راست روی خط زمانی ردیابی حرکت دهید.
E خط زمانی ردیابی را روی مکان فعلی ماوس مرکز کنید.
م انتخاب فعلی را قاب کنید.
1 مدل انتخاب فعال فعلی را به حالت "انتخاب" تغییر دهید. مربوط به دکمه 1 است که در نوار ابزار انتخابگر ماوس ظاهر می شود (تصویر سمت راست را ببینید). اسکرین شات نوار ابزار انتخابگر ماوس در گزارش Systrace
2 مدل انتخاب فعال فعلی را به حالت "pan" تغییر دهید. مربوط به دکمه دوم است که در نوار ابزار انتخابگر ماوس ظاهر می شود (تصویر سمت راست را ببینید). اسکرین شات نوار ابزار انتخابگر ماوس در گزارش Systrace
3 مدل انتخاب فعال فعلی را به حالت "zoom" تغییر دهید. مربوط به دکمه سوم است که در نوار ابزار انتخابگر ماوس ظاهر می شود (تصویر سمت راست را ببینید). اسکرین شات نوار ابزار انتخابگر ماوس در گزارش Systrace
4 مدل انتخاب فعال فعلی را به حالت "زمان بندی" تغییر دهید. مربوط به دکمه چهارم است که در نوار ابزار انتخابگر ماوس ظاهر می شود (تصویر سمت راست را ببینید). اسکرین شات نوار ابزار انتخابگر ماوس در گزارش Systrace
جی شبکه را در شروع کار انتخاب شده فعلی نشان دهید.
Shift + G شبکه را در پایان کار انتخاب شده فعلی نشان دهید.
فلش چپ رویداد قبلی را در جدول زمانی انتخاب شده فعلی انتخاب کنید.
فلش سمت راست رویداد بعدی را در جدول زمانی انتخاب شده فعلی انتخاب کنید.

بررسی مشکلات عملکرد

هنگام تعامل با گزارش Systrace، می‌توانید میزان استفاده از CPU دستگاه را در طول مدت ضبط بررسی کنید. برای کمک به پیمایش گزارش HTML، بخش میانبرهای صفحه کلید را ببینید یا روی ? دکمه در گوشه سمت راست بالای گزارش.

بخش‌های زیر نحوه بازرسی اطلاعات در گزارش را برای یافتن و رفع مشکلات عملکرد توضیح می‌دهند.

نگرانی های عملکرد را شناسایی کنید

هنگام پیمایش در یک گزارش Systrace، با انجام یک یا چند مورد از موارد زیر می‌توانید نگرانی‌های مربوط به عملکرد را راحت‌تر شناسایی کنید:

  • با کشیدن یک مستطیل در اطراف بازه زمانی، یک بازه زمانی مورد علاقه را انتخاب کنید.
  • با استفاده از ابزار خط کش، ناحیه مشکل را علامت گذاری یا برجسته کنید.
  • با کلیک روی View Options > Highlight VSync، هر عملیات بازخوانی نمایشگر را نشان دهید.

فریم های رابط کاربری و هشدارها را بررسی کنید

همانطور که در شکل 4 نشان داده شده است، گزارش Systrace هر فرآیندی را که فریم های UI را ارائه می دهد فهرست می کند و هر فریم رندر شده را در امتداد خط زمانی نشان می دهد. فریم هایی که در 16.6 میلی ثانیه مورد نیاز برای حفظ ثبات 60 فریم در ثانیه ارائه می شوند با دایره های قاب سبز نشان داده می شوند. فریم هایی که رندر آنها بیش از 16.6 میلی ثانیه طول می کشد با دایره های قاب زرد یا قرمز نشان داده می شوند.

بزرگنمایی در نمای یک قاب
شکل 4. نمایش Systrace پس از بزرگنمایی بر روی یک فریم طولانی مدت

با کلیک بر روی یک دایره فریم، آن را برجسته می‌کند و اطلاعات بیشتری درباره کار انجام شده توسط سیستم برای ارائه آن فریم، از جمله هشدارها، ارائه می‌کند. این گزارش همچنین روش هایی را که سیستم در حین رندر کردن آن فریم اجرا می کرد به شما نشان می دهد. شما می‌توانید آن روش‌ها را برای تعیین علل بالقوه UI jank بررسی کنید.

قاب مشکل دار انتخاب شد
شکل 5. با انتخاب قاب مشکل ساز، یک هشدار در زیر گزارش ردیابی ظاهر می شود که مشکل را شناسایی می کند.

پس از انتخاب یک فریم آهسته، ممکن است یک هشدار در قسمت پایین گزارش مشاهده کنید. هشدار نشان داده شده در شکل 5 نشان می دهد که مشکل اصلی قاب این است که زمان زیادی در داخل ListView برای بازیافت و اتصال مجدد صرف می شود. پیوندهایی به رویدادهای مربوطه در ردیابی وجود دارد که بیشتر در مورد آنچه که سیستم در این مدت انجام می دهد توضیح می دهد.

همانطور که در شکل 6 نشان داده شده است، برای مشاهده هر هشداری که ابزار در ردیابی شما پیدا کرده است، و همچنین تعداد دفعاتی که دستگاه هر هشدار را فعال کرده است، روی تب Alerts در سمت راست پنجره کلیک کنید، همانطور که در شکل 6 نشان داده شده است. کدام مشکلات در ردیابی رخ می دهد و هر چند وقت یکبار به جنک کمک می کند. می توانید این پنل را به عنوان لیستی از باگ هایی که باید برطرف شوند در نظر بگیرید. اغلب، یک تغییر یا بهبود کوچک در یک منطقه می تواند کل مجموعه ای از هشدارها را حذف کند.

برگه هشدار نشان داده شده است
شکل 6. با کلیک بر روی دکمه Alert ، برگه هشدار ظاهر می شود

اگر می بینید که کار زیادی روی رشته UI انجام می شود، از یکی از روش های زیر برای کمک به تعیین اینکه کدام روش ها زمان CPU زیادی مصرف می کنند استفاده کنید:

  • اگر ایده ای دارید که کدام روش ها می توانند باعث ایجاد تنگنا شوند، نشانگرهای ردیابی را به این روش ها اضافه کنید. برای کسب اطلاعات بیشتر، راهنمای نحوه تعریف رویدادهای سفارشی در کد خود را ببینید.
  • اگر در مورد منبع تنگناهای رابط کاربری مطمئن نیستید، از CPU Profiler موجود در Android Studio استفاده کنید. می‌توانید گزارش‌های ردیابی را ایجاد کنید ، و سپس آنها را با استفاده از CPU Profiler وارد و بررسی کنید.