این دستور perf-script است که می تواند در ارائه دهنده هاست رایگان OnWorks با استفاده از یکی از چندین ایستگاه کاری آنلاین رایگان ما مانند Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا شود.
برنامه:
نام
perf-script - خواندن perf.data (ایجاد شده توسط رکورد perf) و نمایش خروجی ردیابی
خلاصه
پرفیوم خط [ ]
پرفیوم خط [ ] رکورد []
پرفیوم خط [ ] گزارش [script-args]
پرفیوم خط [ ] []
پرفیوم خط [ ] [script-args]
شرح
این دستور فایل ورودی را می خواند و ردیابی ثبت شده را نمایش می دهد.
انواع مختلفی از اسکریپت perf وجود دارد:
برای دیدن ردی دقیق از حجم کاری که بود، 'perf script'
ثبت شده.
همچنین می توانید مجموعه ای از اسکریپت های از پیش آماده شده را اجرا کنید که و
داده های ردیابی خام را به روش های مختلف خلاصه کنید (لیست اسکریپت ها است
در دسترس از طریق "perf script -l"). انواع زیر به شما اجازه می دهد
آن اسکریپت ها را ضبط و اجرا کنید:
رکورد اسکریپت پرف ' to record the events required
برای "گزارش اسکریپت پرف". is the name displayed in the
خروجی "perf script --list" یعنی نام واقعی اسکریپت منهای هر کدام
پسوند زبان اگر مشخص نشده است، رویدادها هستند
با استفاده از -a (سیستم-گسترده) گزینه "perf record" ضبط شده است.
گزارش اسکریپت perf [args]' to run and display the results
از . is the name displayed in the output of 'perf
trace --list' یعنی نام واقعی اسکریپت منهای هر زبان
افزونه. خروجی perf.data از اجرای قبلی 'perf script
رکورد ' is used and should be present for this command to
موفق شدن [args] به آرگ های (عمدتا اختیاری) مورد انتظار توسط اشاره دارد
فیلمنامه
اسکریپت عالی ' to both
رویدادهای مورد نیاز را ثبت کنید and to run the
با استفاده از "حالت زنده" یعنی بدون نوشتن چیزی روی دیسک.
نام نمایش داده شده در خروجی 'perf script --list' است
نام واقعی اسکریپت منهای هر پسوند زبان. اگر است
مشخص نشده است، رویدادها با استفاده از -a (سطح سیستم) ثبت می شوند.
گزینه "perf record". اگر has any required args, they
باید قبلا مشخص شود . این حالت اجازه نمی دهد
ارگهای اسکریپت اختیاری که باید مشخص شوند. اگر آرگ های اسکریپت اختیاری باشد
دلخواه، آنها را می توان با استفاده از "پرف اسکریپت رکورد" جداگانه مشخص کرد
و دستورات 'perf script report'، با stdout مرحله رکورد
با استفاده از "-o -" و "-i -" به stdin اسکریپت گزارش لوله می شود.
گزینه های دستورات مربوطه
اسکریپت عالی برای هر دو ثبت رویدادهای مورد نیاز برای
و برای اجرای با استفاده از "حالت زنده"
یعنی بدون نوشتن چیزی روی دیسک. نام است
نمایش داده شده در خروجی "perf script --list" یعنی واقعی
نام اسکریپت منهای هر پسوند زبان. آ تعریف شده است
مانند هر نام اسکریپتی که با رشته 'top' ختم می شود.
[ ] را می توان به مراحل رکورد 'perf script' منتقل کرد
انواع رکورد" و "حالت زنده". اما این امکان پذیر نیست
انواع "حالت زنده" یا "گزارش اسکریپت پرف".
برای پیوندهای مربوط به زبان خاص، بخش «همچنین ببینید».
اطلاعاتی در مورد نحوه نوشتن و اجرای اسکریپت های ردیابی خود.
OPTIONS
...
هر دستوری که می توانید در یک پوسته مشخص کنید.
-D، --dump-raw-script=
نمایش دادههای ردیابی پرمخاطب.
-L، --Latency=
نمایش ویژگیهای تأخیر (irqs/preemption غیرفعال، و غیره).
-l، --list=
نمایش لیستی از اسکریپت های ردیابی موجود.
-s [ارسال به دوست]، --script=
داده های ردیابی را با اسکریپت داده شده پردازش کنید ([lang]:script[.ext]). اگر رشته ارسال به دوست is
به جای نام اسکریپت مشخص شده، لیستی از زبان های پشتیبانی شده نمایش داده می شود
به جای آن.
-g، --gen-script=
اسکریپت شروع perf-script.[ext] برای زبان داده شده با استفاده از perf.data فعلی ایجاد کنید.
-a
مجموعه اجباری در سراسر سیستم. اسکریپت ها بدون a اجرا می شوند معمولاً از -a توسط استفاده می کنند
پیش فرض، در حالی که اسکریپت ها با a اجرا می شوند معمولاً انجام نمی شود - این گزینه اجازه می دهد
دومی در حالت کل سیستم اجرا شود.
-i، --input=
نام فایل ورودی (پیش فرض: perf.data مگر اینکه stdin یک fifo باشد)
-d، --debug-mode
بررسی های مختلف مانند سفارش نمونه و رویدادهای گم شده را انجام دهید.
-F، -- فیلدها
لیست فیلدهایی که باید چاپ شوند با کاما از هم جدا شده اند. گزینه ها عبارتند از: comm، tid، pid، time، cpu،
رویداد، ردیابی، ip، sym، dso، addr، symoff، srcline، نقطه، iregs، brstack، brstacksym،
پرچم ها لیست فیلدها را می توان با نوع، ردیابی، sw یا hw اضافه کرد تا نشان دهد
کدام نوع رویداد لیست فیلد اعمال می شود. به عنوان مثال، -f sw:comm،tid،time،ip،sym و -f
ردیابی: زمان، پردازنده مرکزی، ردیابی
اسکریپت perf -f
برابر است با:
اسکریپت perf -f trace: -f sw: -f hw:
به عنوان مثال، فیلدهای مشخص شده برای همه انواع رویداد در صورت رشته نوع اعمال می شود
داده نمی شود.
آرگومان ها به ترتیب دریافتی پردازش می شوند. استفاده بعدی می تواند
بازنشانی درخواست قبلی به عنوان مثال:
-f trace: -f comm,tid,time,ip,sym
اولین -f رویدادهای ردیابی را سرکوب می کند (فهرست فیلد "" است)، اما سپس
invocation دوم فیلدها را روی comm,tid,time,ip,sym تنظیم می کند. در این مورد الف
هشدار به کاربر داده می شود:
"برخوردار از درخواست فیلد قبلی برای همه رویدادها."
از طرف دیگر، ترتیب را در نظر بگیرید:
-f comm,tid,time,ip,sym -f trace:
اولین -f فیلدها را برای همه رویدادها و دومی -f تنظیم می کند
رویدادهای ردیابی را سرکوب می کند. به کاربر یک پیام هشدار داده می شود
نادیده گرفتن، و نتیجه از بالا این است که فقط S/W و H/W
رویدادها با فیلدهای داده شده نمایش داده می شوند.
برای گزینه "wildcard" اگر فیلد انتخابی کاربر برای یک نامعتبر باشد
نوع رویداد، پیغامی به کاربر نمایش داده می شود که گزینه وجود دارد
برای آن نوع نادیده گرفته شده است. مثلا:
اسکریپت $ perf -f comm,tid,trace
"ردیابی" برای رویدادهای سخت افزاری معتبر نیست. نادیده گرفتن.
"ردیابی" برای رویدادهای نرم افزار معتبر نیست. نادیده گرفتن.
متناوبا، اگر نوع داده شود، یک فیلد نامعتبر مشخص می شود
یک خطا است مثلا:
اسکریپت perf -v -f sw:comm,tid,trace
"ردیابی" برای رویدادهای نرم افزار معتبر نیست.
در این مرحله استفاده نمایش داده می شود و perf-script خارج می شود.
فیلد flags ترکیب شده است و ممکن است در هنگام دستورالعمل مقداری داشته باشد
رمزگشایی ردیابی پرچم ها "bcrosyiABEx" هستند که مخفف شاخه هستند،
تماس، بازگشت، مشروط، سیستم، ناهمزمان، وقفه،
لغو تراکنش، شروع ردیابی، پایان ردیابی و در معامله،
بود.
در نهایت، کاربر ممکن است فیلدها را برای همه انواع رویداد روی هیچ تنظیم نکند.
به عنوان مثال، -f "" مجاز نیست.
خروجی brstack شامل اطلاعات مربوط به شاخه با آدرس های خام با استفاده از
نحو /v/v/v/v/ به ترتیب زیر:
FROM: دستورالعمل منبع شاخه
TO: دستورالعمل هدف شعبه
M/P/-: M= شاخه هدف اشتباه پیشبینی شد یا جهت شاخه اشتباه پیشبینی شد، P=هدف پیشبینی شد یا جهت پیشبینی شد، -=پشتیبانی نشد
X/-: X=شاخه در داخل یک منطقه تراکنشی، -=در منطقه تراکنش نیست یا پشتیبانی نمی شود
A/-: ورودی A=TSX سقط، -=منطقه سقط نشده یا پشتیبانی نمی شود
brstacksym با brstack یکسان است، با این تفاوت که آدرس های FROM و TO در صورت امکان به صورت نمادین چاپ می شوند.
-k، --vmlinux=
نام مسیر vmlinux
--kallsyms=
نام مسیر kallsyms
--symfs=
به دنبال فایل هایی با نمادهای مربوط به این دایرکتوری باشید.
-G، --hide-call-graph
هنگام چاپ نمادها زنجیره تماس نمایش داده نمی شود.
-C، --cpu
فقط نمونه هایی را برای لیست CPU های ارائه شده گزارش کنید. چندین CPU را می توان به عنوان یک ارائه کرد
لیست جدا شده با کاما بدون فاصله: 0,1،0. محدوده CPU ها با -: 2-XNUMX مشخص می شود.
پیشفرض گزارش نمونهها در تمام پردازندهها است.
-c، --comms=
فقط رویدادها را برای این کام ها نمایش دهید. CSV که می فهمد file://name ورودی های.
--pid=
فقط رویدادها را برای شناسه فرآیند داده شده نشان می دهد (لیست جدا شده با کاما).
--tid=
رویدادها فقط برای شناسه رشته داده شده (فهرست جدا شده با کاما) نشان داده شود.
-I، --show-info
نمایش اطلاعات گسترده در مورد فایل perf.data. این اطلاعاتی را اضافه می کند که ممکن است
بسیار بزرگ باشد و در نتیجه ممکن است نمایشگر را به هم بریزد. در حال حاضر شامل: cpu و numa است
توپولوژی سیستم میزبان فقط با حالت گزارش اسکریپت perf قابل استفاده است.
--show-kernel-path
سعی کنید مسیر [kernel.kallsyms] را حل کنید
--show-task-events نمایش رویدادهای مربوط به کار (مانند FORK، COMM، EXIT).
--show-mmap-events رویدادهای مربوط به mmap را نمایش دهید (مانند MMAP، MMAP2).
--show-switch-events نمایش رویدادهای سوئیچ زمینه یعنی رویدادهایی از نوع PERF_RECORD_SWITCH
یا PERF_RECORD_SWITCH_CPU_WIDE.
--دمانگل
نام نمادها را به شکل قابل خواندن انسان جدا کنید. به طور پیش فرض فعال است، با غیرفعال کنید
-- بدون درهم ریختن.
--demanngle-kernel
نام نمادهای هسته را به شکل قابل خواندن انسان (برای هسته های C++) جدا کنید.
--header نمایش هدر perf.data.
--header-only فقط هدر perf.data نمایش داده شود.
-- itrace
گزینه هایی برای رمزگشایی داده های ردیابی دستورالعمل. گزینه ها عبارتند از:
من رویدادهای دستورالعمل را ترکیب می کنم
b سنتز رویدادهای شاخه ها
c ترکیب رویدادهای شاخه ها (فقط تماس ها)
r ترکیب رویدادهای شاخه ها (فقط برمی گرداند)
x ترکیب رویدادهای معاملات
و رویدادهای خطا را ترکیب کنید
د یک گزارش اشکال زدایی ایجاد کنید
g یک زنجیره تماس را ترکیب کنید (از i یا x استفاده کنید)
l آخرین ورودی های شاخه را ترکیب کنم (از i یا x استفاده کنید)
پیش فرض همه رویدادها است، یعنی همان --itrace=ibxe
علاوه بر این، دوره (پیش فرض 100000) برای رویدادهای دستورالعمل
را می توان در واحدهای زیر مشخص کرد:
من دستورالعمل
تی تیک
ms میلی ثانیه
ما میکرو ثانیه
ns نانوثانیه (پیشفرض)
همچنین اندازه زنجیره تماس (پیشفرض 16، حداکثر 1024) برای دستورالعملها یا
رویدادهای معاملات را می توان مشخص کرد.
همچنین تعداد آخرین ورودی های شعبه (پیش فرض 64، حداکثر 1024) برای
دستورالعمل ها یا رویدادهای معاملات را می توان مشخص کرد.
برای غیرفعال کردن کامل رمزگشایی، از --no-itrace استفاده کنید.
- مسیر منبع کامل
نمایش مسیر کامل فایل های منبع برای خروجی srcline.
-ns
هنگام نمایش زمان از 9 رقم اعشار استفاده کنید (یعنی نشان دادن نانوثانیه ها)
از perf-script به صورت آنلاین با استفاده از خدمات onworks.net استفاده کنید