perfetto
ابزاری است که به شما امکان میدهد اطلاعات عملکرد دستگاههای Android را از طریق Android Debug Bridge (ADB) جمعآوری کنید. ابزار perfetto
را با استفاده از دستور adb shell perfetto ...
فراخوانی کنید. perfetto
از منابع مختلفی برای جمع آوری ردپای عملکرد از دستگاه شما استفاده می کند، مانند:
-
ftrace
برای اطلاعات از هسته -
atrace
برای حاشیه نویسی فضای کاربر در سرویس ها و برنامه ها -
heapprofd
برای اطلاعات استفاده از حافظه بومی سرویس ها و برنامه ها
در این صفحه نحوه فراخوانی perfetto
و پیکربندی آن برای تولید خروجی مورد نظر توضیح داده شده است. برای اطلاعات بیشتر، به مستندات perfetto
مراجعه کنید.
نحو
این بخش نحوه استفاده از ADB را برای فراخوانی perfetto
برای حالت های مختلف و ایجاد ردیابی توضیح می دهد.
انتخاب منبع داده
perfetto
شامل دو حالت زیر است که منابع داده ای را که برای ثبت ردیابی استفاده می کند تعیین می کند:
- حالت نور : می تواند تنها زیر مجموعه ای از منابع داده، به ویژه
atrace
وftrace
را انتخاب کند. با این حال، این حالت یک رابط شبیه بهsystrace
ارائه می دهد. - حالت عادی : پیکربندی خود را در یک بافر پروتکل دریافت می کند و به شما امکان می دهد با استفاده از منابع داده متفاوت از
atrace
وftrace
، از عملکردهایperfetto
بیشتر استفاده کنید.
گزینه های عمومی
جدول زیر گزینه های موجود را هنگام استفاده از perfetto
در هر حالت فهرست می کند:
گزینه | توضیحات |
---|---|
--background | | perfetto بلافاصله از رابط خط فرمان خارج می شود و به ضبط ردیابی شما در پس زمینه ادامه می دهد. |
--background-wait | -D | مانند --background ، اما منتظر می ماند (تا 30 ثانیه) تا همه منابع داده قبل از خروج شروع شوند. در صورت دریافت تاییدیه موفقیت آمیز، کد خروج صفر و در غیر این صورت غیر صفر است (خطا یا مهلت زمانی). |
--alert-id | شناسه هشداری که این ردیابی را ایجاد کرده است. |
--config-id | شناسه پیکربندی راهاندازی. |
--config-uid | UID برنامه ای که پیکربندی را ثبت کرده است. |
--subscription-id | شناسه اشتراکی که باعث این ردیابی شده است. |
--out OUT_FILE | | مسیر مورد نظر را برای فایل ردیابی خروجی یا نکته: باید نام مسیر کامل فایل خروجی را مشخص کنید. معمولاً فایل ها باید در پوشه |
--upload | پس از تکمیل، ردیابی را به بسته مشخص شده توسط پیام IncidentReportConfig در پیکربندی proto trace منتقل می کند. |
--no-guardrails | هنگام فعال کردن پرچم --upload در هنگام آزمایش، محافظت در برابر استفاده بیش از حد از منابع را غیرفعال می کند. |
--reset-guardrails | وضعیت پایدار نرده ها را بازنشانی می کند و برای آزمایش خارج می شود. |
--rsave-for-bugreport | اگر ردیابی با bugreport_score > 0 در حال اجرا باشد، ردیابی را در یک فایل ذخیره میکند. پس از اتمام مسیر را خروجی می دهد. |
--query | وضعیت سرویس را پرس و جو می کند و آن را به عنوان متن قابل خواندن توسط انسان چاپ می کند. |
--query-raw | شبیه --query است، اما بایتهای کدگذاری اولیه اولیه tracing_service_state.proto. |
--help | -h | متن راهنما را برای ابزار perfetto چاپ می کند. |
حالت نور
نحو کلی برای استفاده از perfetto
در حالت نور به شرح زیر است:
adb shell perfetto [ --time TIMESPEC ] [ --buffer SIZE ] [ --size SIZE ] [ ATRACE_CAT | FTRACE_GROUP/FTRACE_NAME | FTRACE_GROUP/* ]... --out FILE
جدول زیر گزینه های موجود را هنگام استفاده از perfetto
در حالت نور فهرست می کند:
گزینه | توضیحات |
---|---|
--time TIME [s|m|h] | | مدت زمان ردیابی را بر حسب ثانیه، دقیقه یا ساعت مشخص می کند. به عنوان مثال، --time 1m مدت زمان ردیابی 1 دقیقه را مشخص می کند. مدت زمان پیش فرض 10 ثانیه است. |
--buffer SIZE [mb|gb] | | اندازه بافر حلقه را بر حسب مگابایت (mb) یا گیگابایت (gb) مشخص می کند. پارامتر پیش فرض --buffer 32mb است. |
--size SIZE [mb|gb] | | حداکثر اندازه فایل را بر حسب مگابایت (mb) یا گیگابایت (گیگابایت) مشخص می کند. به طور پیش فرض، perfetto فقط از بافر حلقه درون حافظه استفاده می کند. |
--app | -a | نام برنامه اندروید (atrace). |
این گزینه ها با لیستی از مشخص کننده های رویداد دنبال می شوند:
رویداد | توضیحات |
---|---|
ATRACE_CAT | دستههای atrace را که میخواهید ردیابی برای آنها ثبت کنید، مشخص میکند. برای مثال، دستور زیر Window Manager را با استفاده از atrace ردیابی می کند:adb shell perfetto --out FILE wm برای ثبت سایر دستهها، این فهرست از دستههای |
FTRACE_GROUP/FTRACE_NAME | رویدادهای ftrace را که می خواهید برای آنها ردیابی ثبت کنید، مشخص می کند. به عنوان مثال، دستور زیر رویدادهای sched/sched_switch را ردیابی می کند: adb shell perfetto --out FILE sched/sched_switch |
حالت عادی
نحو کلی برای استفاده از perfetto
در حالت عادی به شرح زیر است:
adb shell perfetto [ --txt ] --config CONFIG_FILE --out FILE
جدول زیر گزینه های موجود را هنگام استفاده از perfetto
در حالت عادی فهرست می کند:
گزینه | توضیحات |
---|---|
--config CONFIG_FILE | -c CONFIG_FILE | مسیر فایل پیکربندی را مشخص می کند. در حالت عادی، برخی از تنظیمات ممکن است در بافر پروتکل پیکربندی کدگذاری شوند. این فایل باید با طرح بافر پروتکل تعریف شده در AOSP trace_config.proto مطابقت داشته باشد. همانطور که در AOSP |
--txt | به perfetto دستور می دهد تا فایل پیکربندی را به صورت pbtxt تجزیه کند. این پرچم فقط برای آزمایش محلی در نظر گرفته شده است و توصیه نمی شود آن را برای تولید فعال کنید. |
منابع داده پشتیبانی شده
این بخش منابع مختلفی را که perfetto
برای ایجاد ردیابی شما استفاده می کند، شرح می دهد.
ftrace
منبع داده ftrace
به perfetto
اجازه می دهد تا رویدادها را از هسته دریافت کند.
این منبع را با تنظیم ftrace_config
در DataSourceConfig فعال کنید.
رویدادهایی که می توانند فعال شوند عبارتند از:
-
sched/sched_switch
-
sched/sched_wakeup
-
sched/sched_wakeup_new
-
sched/sched_process_exec
-
sched/sched_process_exit
-
sched/sched_process_fork
-
sched/sched_process_free
-
sched/sched_process_hang
-
sched/sched_process_wait
-
رویدادهای سیستم فایل:
بسته به دستگاه، نسخه سیستم عامل یا هسته شما، ممکن است رویدادهای بیشتری در دسترس باشد. برای اطلاعات بیشتر، به پروتوهای پیکربندی مراجعه کنید.
آمار فرآیند
منبع داده آمار فرآیند به شما امکان می دهد شمارنده های نظرسنجی در مورد سیستم و فرآیندهای فردی را دریافت کنید.
این منبع را با تنظیم process_stats_config
و sys_stats_config
در DataSourceConfig فعال کنید.
داده هایی که perfetto
تولید می کند شامل:
-
/proc/meminfo
-
/proc/vmstat
-
/proc/stat
-
-
/proc/\<pid\>/status
-
/proc/\<pid\>/oom_score_adj
-
بسته به دستگاه، نسخه سیستم عامل و هسته شما، ممکن است رویدادهای بیشتری در دسترس باشد. برای کسب اطلاعات بیشتر، به پروتوهای پیکربندی sys_stats
و process_stats
مراجعه کنید.
heapprofd
heapprofd
به شما امکان می دهد علل استفاده از حافظه بومی را نمونه برداری کنید.
این منبع را با تنظیم heapprofd_config
در DataSourceConfig فعال کنید. این تنظیم ProfilePackets
، از جمله فریمهای جاوای پشته تماس را تولید میکند.
اطلاعات بیشتر در مورد نحوه استفاده heapprofd
را می توانید در perfetto.dev
پیدا کنید.
منابع دیگر
بسته به دستگاه، نسخه سیستم عامل و هسته شما، ممکن است منابع داده بیشتری در دسترس باشد. برای کسب اطلاعات بیشتر، به پروتوهای پیکربندی منبع داده مراجعه کنید.
اطلاعات بیشتر در مورد perfetto
را می توان در perfetto.dev یافت.