-a, --all-cpus
گردآوری
در سطح کل
سامانه.
(پیشفرض)
-c <count>, --count=<count>
دورهٔ
رویداد
برای
نمونهبرداری.
-C <cpu-list>, --cpu=<cpu>
فقط روی
فهرست
پردازندههای
مشخصشده
پایش انجام
شود. چندین
پردازنده
را میتوان
بهصورت
فهرستی با
کاما و بدون
فاصله مشخص
کرد: 0,1.
بازههای
پردازنده
با - مشخص
میشوند: 0-2.
مقدار
پیشفرض
پایش تمام
پردازندهها
است.
-d <seconds>, --delay=<seconds>
تعداد
ثانیههای
تأخیر میان
تازهسازیها.
-e <event>, --event=<event>
انتخاب
رویداد PMU.
انتخاب
میتواند
یک نام
نمادین
رویداد
باشد (از perf list
برای فهرست
کردن تمام
رویدادها
استفاده
کنید) یا یک
رویداد خام PMU
در قالب rN
باشد که در
آن N یک مقدار
هگزادسیمال
است که
کدگذاری
خام ثبات را
مطابق با
ساختاربندی
ثباتهای
کنترل
رویداد که
در
مدخلهای
/sys/bus/event_source/devices/cpu/format/* شرح
داده شده
است، نمایش
میدهد.
--filter=<filter>
فیلتر
رویداد. این
گزینه باید
پس از یک
انتخابگر
رویداد (
-e)
قرار گیرد.
برای اطلاع
از ساختار
نحوی به
perf-record(1)
مراجعه
کنید.
-E <entries>, --entries=<entries>
نمایش
این تعداد
تابع.
-f <count>, --count-filter=<count>
فقط
نمایش
توابعی با
رویدادهایی
بیش از این
مقدار.
--group-sort-idx
مرتبسازی
خروجی بر
اساس
رویداد در
اندیس n در
گروه. اگر n
نامعتبر
باشد، بر
اساس
نخستین
رویداد
مرتبسازی
میشود.
میتواند
از چندین
گروه با
تعداد
رویدادهای
مختلف
پشتیبانی
کند. هشدار:
این گزینه
باید روی
رویدادهای
گروهبندیشده
استفاده
شود.
-F <freq>, --freq=<freq>
پروفایلسازی
در این
بسامد. برای
استفاده از
بیشینه
بسامد مجاز
کنونی،
یعنی مقدار
موجود در sysctl
با عنوان
kernel.perf_event_max_sample_rate، از max
استفاده
کنید.
-i, --inherit
تسکهای
فرزند
شمارندهها
را به ارث
نمیبرند.
-k <path>, --vmlinux=<path>
مسیر به
vmlinux. برای
قابلیت
حاشیهنویسی
(annotation) الزامی
است.
--ignore-vmlinux
نادیدهگرفتن
فایلهای
vmlinux.
--kallsyms=<file>
نام مسیر
kallsyms
-m <pages>, --mmap-pages=<pages>
تعداد
صفحههای
دادهٔ mmap
(باید توانی
از دو باشد)
یا مشخص
کردن
اندازه به
بایت به
همراه
نویسه واحد
الصاقشده -
B/K/M/G. اندازه به
سمت
نزدیکترین
مقدار صفحه
با توان دو
به بالا گرد
میشود.
-p <pid>, --pid=<pid>
پروفایلسازی
رویدادها
روی شناسهٔ
فرایند (PID)
موجود
(فهرست
جداشده با
کاما).
-t <tid>, --tid=<tid>
پروفایلسازی
رویدادها
روی شناسهٔ
نخ (TID) موجود
(فهرست
جداشده با
کاما).
-u, --uid=
ثبت
رویدادها
در نخهای
متعلق به uid.
با نام یا
شماره.
-r <priority>, --realtime=<priority>
گردآوری
دادهها با
این اولویت
بلادرنگ (RT) از
نوع SCHED_FIFO.
--sym-annotate=<symbol>
حاشیهنویسی
این نماد.
-K, --hide_kernel_symbols
پنهانسازی
نمادهای
هسته.
-U, --hide_user_symbols
پنهانسازی
نمادهای
کاربر.
--demangle-kernel
خواناسازی
نامها (demangle)
برای
نمادهای
هسته.
-D, --dump-symtab
تخلیه
جدول
نمادهای
مورد
استفاده در
پروفایلسازی.
-v, --verbose
پرحرفتر
بودن (نمایش
خطاهای باز
کردن
شمارندهها
و غیره).
-z, --zero
صفر کردن
تاریخچه در
طول
بهروزرسانیهای
نمایش.
-s, --sort
مرتبسازی
بر اساس
کلید(ها): pid, comm, dso, symbol,
parent, srcline, weight, local_weight, abort, in_tx, transaction, overhead,
sample, period. لطفاً
توضیحات --sort
را در صفحه
راهنمای perf-report
مشاهده
کنید.
--fields=
مشخص
کردن فیلد
خروجی - چند
کلید
میتوانند
در قالب CSV
مشخص شوند.
فیلدهای
زیر در
دسترس
هستند: overhead, overhead_sys, overhead_us,
overhead_children, sample و period.
همچنین
میتواند
شامل هر
کلید(های)
مرتبسازی
باشد.
بهطور پیشفرض، هر کلید مرتبسازی که در --field مشخص نشده باشد بهطور
خودکار افزوده خواهد شد.
-n, --show-nr-samples
نمایش
ستونی با
تعداد
نمونهها.
--show-total-period
نمایش
ستونی با
مجموع
دورهها (periods).
--dsos
تنها
نمادهای
موجود در
این dsoها را در
نظر
میگیرد.
این گزینه
بر درصد
ستون overhead
تأثیر
خواهد
گذاشت. برای
اطلاعات
بیشتر --percentage را
ببینید.
--comms
تنها
نمادهای
موجود در
این commها را
در نظر
میگیرد.
این گزینه
بر درصد
ستون overhead
تأثیر
خواهد
گذاشت. برای
اطلاعات
بیشتر --percentage را
ببینید.
--symbols
تنها این
نمادها را
در نظر
میگیرد.
این گزینه
بر درصد
ستون overhead
تأثیر
خواهد
گذاشت. برای
اطلاعات
بیشتر --percentage را
ببینید.
-M, --disassembler-style=
تنظیم
سبک
دیساسمبلر
برای objdump.
--addr2line=<path>
مسیر
فایل
اجرایی addr2line.
--objdump=<path>
مسیر
فایل
اجرایی objdump.
--prefix=PREFIX, --prefix-strip=N
حذف N
مدخل نخست
از نام مسیر
فایلهای
سورس در
فایلهای
اجرایی و
افزودن PREFIX به
آنها. این
امکان را
فراهم
میسازد تا
کد منبع
کامپایلشده
روی
سیستمهایی
با ساختار
فایلسیستم
متفاوت
نمایش داده
شود.
--source
نمایش
درهمآمیخته
کد منبع با
کد اسمبلی.
بهطور
پیشفرض
فعال است؛
با --no-source
غیرفعال
میشود.
--asm-raw
نمایش
کدگذاری
خام
دستورالعملهای
اسمبلی.
-g
فعالسازی
ضبط گراف
فراخوانی
یا call-graph (زنجیره
پشته/backtrace).
--call-graph [mode,type,min[,limit],order[,key][,branch]]
راهاندازی
و
فعالسازی
ضبط call-graph
(زنجیره
پشته/backtrace)؛ این
گزینه شامل -g
نیز میشود.
برای
جزئیات بخش
--call-graph را در
صفحات
راهنمای perf-record و
perf-report ببینید.
--children
انباشت
زنجیره
فراخوانی (callchain)
فرزندان در
مدخل والد
به نحوی که
بتوانند در
خروجی
نمایش داده
شوند. خروجی
شامل یک
ستون جدید
«Children» خواهد
بود و بر
اساس
دادهها
مرتب
میشود. این
گزینه
نیازمند
فعال بودن
گزینه -g/--call-graph
است. برای
جزئیات
بیشتر بخش
‘overhead calculation’ را
ببینید.
بهطور
پیشفرض
فعال است؛
با --no-children
غیرفعال
میشود.
--max-stack
تنظیم
محدودیت
عمق پشته
هنگام
تجزیه
زنجیره
فراخوانی؛
هر چیزی
فراتر از
عمق
تعیینشده
نادیده
گرفته
خواهد شد.
این یک
مصالحه
میان از دست
رفتن
اطلاعات و
پردازش
سریعتر
است،
بهویژه
برای
بارهای
کاری که
میتوانند
پشته
زنجیره
فراخوانی
بسیار
طولانی
داشته
باشند.
Default: /proc/sys/kernel/perf_event_max_stack when present, 127 otherwise.
--ignore-callees=<regex>
نادیده
گرفتن
فراخواندهشدگان
(callees) تابع یا
توابعی که
با regex
دادهشده
مطابقت
دارند. این
کار موجب
جمعآوری
فراخوانندگان
(callers) هر یک از
این توابع
در یک نقطه
از درخت call-graph
میشود.
--percent-limit
عدم
نمایش
مدخلهایی
که سربار (overhead)
آنها کمتر
از این درصد
است.
(پیشفرض: 0).
--percentage
تعیین
نحوه نمایش
درصد سربار
مدخلهای
فیلترشده.
فیلترها
میتوانند
از طریق
گزینههای
--comms،
--dsos یا
--symbols و
عملیات
بزرگنمایی
در رابط TUI
(مانند thread، dso و
غیره) اعمال
شوند.
«relative» بدین معنی است که درصدها تنها نسبت به مدخلهای فیلترشده محاسبه
میشوند تا مجموع مدخلهای نمایشدادهشده همواره ۱۰۰٪ باشد. «absolute» بدین معنی
است که مقدار اصلی پیش و پس از اعمال فیلتر حفظ میشود.
-w, --column-widths=<width[,width...]>
اجبار
پهنای هر
ستون به
فهرست
ارائهشده،
برای
خوانایی در
ترمینالهای
بزرگ. 0 به
معنای
نامحدود
بودن است
(رفتار
پیشفرض).
--proc-map-timeout
هنگام
پردازش /proc/XXX/mmap
برای
رشتههای
از پیش
موجود،
ممکن است
زمان زیادی
صرف شود،
زیرا فایل
ممکن است
بسیار حجیم
باشد. در
چنین
مواردی یک
محدودیت
زمانی (time out)
لازم است.
این گزینه
حد مهلت
زمانی را
تعیین
میکند.
مقدار
پیشفرض 500
میلیثانیه
است.
-b, --branch-any
فعالسازی
نمونهبرداری
پشته
شاخههای
طیشده (taken branch).
هر نوع شاخه
طیشدهای
ممکن است
نمونهبرداری
شود. این یک
میانبر
برای --branch-filter any است.
برای
اطلاعات
بیشتر --branch-filter را
ببینید.
-j, --branch-filter
فعالسازی
نمونهبرداری
پشته
شاخههای
طیشده (taken branch).
هر نمونه،
مجموعهای
از
شاخههای
متوالی
طیشده را
ضبط میکند.
تعداد
شاخههای
ضبطشده در
هر نمونه به
سختافزار،
نوع
شاخههای
مورد نظر و
کد اجراشده
بستگی دارد.
انتخاب
انواع
شاخههای
ضبطشده با
فعالسازی
فیلترها
امکانپذیر
است. برای
فهرست کامل
اصلاحکنندهها
لطفاً صفحه
راهنمای perf record
را ببینید.
این گزینه حداقل به یکی از انواع شاخه از میان any، any_call، any_ret، ind_call یا cond نیاز دارد.
سطوح دسترسی را میتوان نادیده گرفت، که در این صورت، سطوح دسترسی رویداد مرتبط
به فیلتر شاخه اعمال میشود. هر دو سطح دسترسی هسته (k) و ناظر مجازیسازی (hv)
نیازمند مجوزهای لازم هستند. هنگام نمونهبرداری از چندین رویداد، نمونهبرداری پشته شاخه
برای همه رویدادهای نمونهبرداری فعال میشود. نوع شاخه نمونهبرداریشده برای تمام رویدادها یکسان است.
فیلترهای گوناگون باید بهصورت یک فهرست جداشده با کاما مشخص شوند: --branch-filter any_ret,u,k
توجه داشته باشید که این ویژگی ممکن است در همه پردازندهها در دسترس نباشد.
--branch-history
افزودن
آدرسهای
شاخههای
طیشده
نمونهبرداریشده
به پشته
فراخوانی (callstack).
این امکان
را فراهم
میسازد تا
مسیری که
برنامه تا
هر نمونه طی
کرده است
بررسی شود.
--raw-trace
عدم
استفاده از
print fmt یا
پلاگینها
هنگام
نمایش
خروجی traceevent.
-H, --hierarchy
فعالسازی
خروجی
سلسلهمراتبی.
در حالت
سلسلهمراتبی،
هر کلید
مرتبسازی
نمونهها
را بر اساس
معیارها
گروهبندی
کرده و سپس
آنها را با
استفاده از
کلید
مرتبسازی
سطح
پایینتر
تقسیمبندی
میکند.
برای نمونه، در خروجی عادی:
perf report -s dso,sym
#
# Overhead Shared Object Symbol
# ........ ................. ...........
50.00% [kernel.kallsyms] [k] kfunc1
20.00% perf [.] foo
15.00% [kernel.kallsyms] [k] kfunc2
10.00% perf [.] bar
5.00% libc.so [.] libcall
perf report -s dso,sym --hierarchy
#
# Overhead Shared Object / Symbol
# .......... ......................
65.00% [kernel.kallsyms]
50.00% [k] kfunc1
15.00% [k] kfunc2
30.00% perf
20.00% [.] foo
10.00% [.] bar
5.00% libc.so
5.00% [.] libcall
--overwrite
این
گزینه را
برای
استفاده از
جدیدترین
رکوردها
فعال کنید
که در
ماشینهایی
با تعداد
هسته بالا
نظیر Knights Landing/Mill
مفید است،
اما در حال
حاضر
بهطور
پیشفرض
غیرفعال
است زیرا
توقفهای
به کار رفته
در این
تکنیک منجر
به از دست
رفتن
رویدادهای
فرادادهای
مانند PERF_RECORD_MMAP
میشود، که
سبب
میگردد perf top
قادر به
تفکیک و
تحلیل
نمونهها
نباشد و در
نتیجه
نمونههای
ناشناخته
بسیاری در
رابط
کاربری
نمایش داده
شوند. اگر در
چنین
ماشینهایی
هستید و بار
کاریای را
پروفایل
میکنید که
نخهای
کوتاهعمر
ایجاد
نمیکند
و/یا از
عملیات
اجرایی mmap
زیادی
استفاده
نمیکند،
این گزینه
را فعال
کنید.
برنامهریزیهایی
برای برطرف
کردن این
وضعیت در
دست انجام
است؛ تا آن
زمان، این
گزینه
بهطور
پیشفرض
غیرفعال
باقی خواهد
ماند.
--force
اعتبارسنجی
مالکیت
انجام
نشود.
--num-thread-synthesize
تعداد
نخهایی که
هنگام
ترکیب
رویدادها
برای
فرآیندهای
موجود اجرا
میشوند.
بهطور
پیشفرض،
تعداد
نخها
برابر با
تعداد
پردازندههای
برخط (online CPUs) است.
--namespaces
ثبت
رویدادهایی
از نوع PERF_RECORD_NAMESPACES و
نمایش آن با
کلید
مرتبسازی
cgroup_id.
-G name, --cgroup name
پایش
تنها در
کانتینر (cgroup)
با نام "name".
این گزینه
فقط در حالت
per-cpu در دسترس
است.
سیستمفایل
cgroup باید متصل
(mounted) باشد. تمام
نخهای
متعلق به
کانتینر "name"
هنگامی که
روی
پردازندههای
تحت پایش
اجرا
میشوند،
پایش
خواهند شد.
میتوان
چندین cgroup
مشخص کرد. هر
cgroup به رویداد
متناظر خود
اعمال
میشود؛
یعنی اولین
cgroup به اولین
رویداد،
دومین cgroup به
دومین
رویداد و به
همین ترتیب.
با استفاده
از مواردی
نظیر -G foo,,bar،
امکان
تعیین یک cgroup
خالی (پایش
همیشگی)
وجود دارد.
cgroupها باید
رویدادهای
متناظر
داشته
باشند،
یعنی همیشه
به
رویدادهایی
اشاره
میکنند که
پیشتر در
خط فرمان
تعریف
شدهاند.
اگر کاربر
بخواهد
چندین
رویداد را
برای یک cgroup
خاص ردیابی
کند،
میتواند
از -e e1 -e e2 -G foo,foo یا
تنها از -e e1 -e e2 -G foo
استفاده
کند.
--all-cgroups
ثبت
رویدادهایی
از نوع PERF_RECORD_CGROUP و
نمایش آن با
کلید
مرتبسازی
cgroup.
--switch-on EVENT_NAME
در نظر
گرفتن
رویدادها
تنها پس از
یافتن این
رویداد.
یافتن محلی که بستههای broadcast در آن پردازش میشوند:
اجرای perf top و درخواست از آن برای در نظر گرفتن رویدادهای cycles تنها هنگامی
که یک بسته broadcast میرسد. این کار منویی با دو مدخل نمایش میدهد و با رسیدن
یک بسته broadcast شمارش را آغاز میکند:
perf top -e cycles,probe:icmp_rcv --switch-on=probe:icmp_rcv
به عنوان روشی دیگر میتوان یک گروه درخواست کرد تا دو ستون بالاسری (overhead) نمایان
شود؛ اولی برای cycles و دومی برای رویداد switch-on.
perf top -e '{cycles,probe:icmp_rcv}' --switch-on=probe:icmp_rcv
این روش برای اندازهگیری بار کاری پس از پایان فاز مقداردهی اولیه مفید است؛
یعنی درج یک perf probe در آن نقطه و استفاده از مثالهای بالا با جایگزینی
probe:icmp_rcv با probe پس از مقداردهی اولیه.
--switch-off EVENT_NAME
توقف در
نظر گرفتن
رویدادها
پس از یافتن
این
رویداد.
--show-on-off-events
نمایش
رویدادهای
--switch-on/off نیز. این
گزینه در
حال حاضر در
perf top تأثیری
ندارد، اما
احتمالاً
در حالت --group
پیشفرض بر
عدم نمایش
رویدادهای
switch-on/off قرار
خواهد گرفت
و چنانچه
بهجز
رویدادهای
off/on تنها یک
رویداد
دیگر وجود
داشته
باشد،
مستقیماً
به مرورگر
هیستوگرام
منتقل
میشود؛
دقیقاً
همانند
عملکرد perf top
هنگامی که
هیچ
رویدادی
بهطور
صریح مشخص
نشده است.
--stitch-lbr
نمایش
نمودار
فراخوانی
با LBRهای
پیوندخورده
(stitched LBRs) که ممکن
است نمودار
فراخوانی
کاملتری
ارائه دهد.
این گزینه
باید همراه
با ضبط --call-graph lbr
استفاده
شود. بهطور
پیشفرض
غیرفعال
است. در
شرایط
متداول با
سرریز پشته
فراخوانی (call stack
overflows)، این
ویژگی
میتواند
پشتههای
فراخوانی
بهتری نسبت
به خروجی
پیشفرض
پشته
فراخوانی lbr
بازسازی
کند. با این
حال این روش
کاملاً
بدون خطا
نیست.
مواردی
ممکن است رخ
دهد که در
اثر
تطابقهای
نادرست،
پشتههای
فراخوانی
اشتباهی
ایجاد شوند.
محدودیتهای
شناختهشده
شامل
مواردی
مانند
مدیریت
استثناها
در setjmp/longjmp است که
در آنها
فراخوانیها/بازگشتها
تطابق
نخواهند
داشت.
--pfm-events events
انتخاب
یک رویداد PMU
با استفاده
از نحو libpfm4
(ببینید:
http://perfmon2.sf.net) شامل
پشتیبانی
از
فیلترهای
رویداد.
برای مثال
--pfm-events inst_retired:any_p:u:c=1:i.
میتوان با
استفاده از
جداکننده
کاما بیش از
یک رویداد
را به این
گزینه
ارسال کرد.
رویدادهای
سختافزاری
و
رویدادهای
سختافزاری
عمومی را
نمیتوان
با یکدیگر
ترکیب کرد.
مورد دوم
باید همراه
با گزینه
-e
استفاده
شود. گزینه
-e و
این گزینه
را میتوان
با هم ترکیب
و استفاده
کرد.
رویدادها
را میتوان
با استفاده
از
نمادگذاری {}
گروهبندی
کرد.
[d]
تأخیر در
بازآوری
نمایش.
[e]
تعداد
مدخلها
برای
نمایش.
[E]
رویداد
برای نمایش
هنگامی که
چندین
شمارنده
فعال
هستند.
[f]
فیلتر
نمایش
پروفایل
(تعداد
برخورد >=).
[F]
فیلتر
نمایش
حاشیهنویسی
(درصد از کل
>=).
[s]
حاشیهنویسی
نماد.
[S]
توقف
حاشیهنویسی،
بازگشت به
نمایش کامل
پروفایل.
[K]
پنهانسازی
نمادهای
هسته (kernel).
[U]
پنهانسازی
نمادهای
کاربر (user).
[z]
تغییر
وضعیت صفر
کردن شمارش
رویدادها
در
بازآوریهای
نمایش.
[qQ]
خروج.
فشردن هر
کلید
نگاشتنشدهای
منویی را
نشان داده و
منتظر
ورودی
میماند.
سربار CPU
میتواند
در دو ستون
به صورت Children و
Self نمایش
داده شود،
هنگامی که perf
زنجیرههای
فراخوانی
(callchains) را
جمعآوری
میکند (و
ستونهای
متناظر Wall
برای سربار
زمان واقعی
(wall-clock)). سربار self
به سادگی با
جمع مقادیر
تمام
دورههای (period)
یک مدخل -
معمولاً یک
تابع (نماد) -
محاسبه
میشود. این
همان
مقداری است
که perf بهطور
سنتی نمایش
میدهد و
مجموع تمام
مقادیر
سربار self
باید ۱۰۰٪
باشد.
سربار children
از طریق جمع
مقادیر
تمام
دورههای
توابع
فرزند
محاسبه
میشود تا
بتواند کل
سربار
توابع سطح
بالاتر را
نشان دهد،
حتی اگر خود
آنها
مستقیماً
کار زیادی
انجام
ندهند.
منظور از Children
در اینجا
توابعی
هستند که از
تابعی دیگر
(والد)
فراخوانی
شدهاند.
ممکن است
گیجکننده
باشد که
مجموع تمام
مقادیر
سربار children از
۱۰۰٪ فراتر
میرود،
زیرا هر یک
از آنها
خود تجمیعی
از سربار self
توابع
فرزندشان
هستند. اما
با فعال
بودن این
ویژگی،
کاربران
میتوانند
دریابند که
کدام تابع
بیشترین
سربار را
دارد، حتی
اگر
نمونهها
میان
فرزندان
پراکنده
شده باشند.
مثال زیر
را در نظر
بگیرید؛ سه
تابع مانند
زیر وجود
دارد.
.ft C
void foo(void) {
/* do something */
}
void bar(void) {
/* do something */
foo();
}
int main(void) {
bar()
return 0;
}
.ft
در این
حالت foo
فرزند bar
است، و bar
فرزند
بیواسطه main
میباشد،
بنابراین foo
نیز فرزند
main به شمار
میرود. به
عبارت
دیگر، main
والد foo و bar
است، و bar
والد foo
میباشد.
فرض کنید
تمامی
نمونهها
فقط در foo و bar
ثبت
شدهاند.
هنگامی که
با زنجیره
فراخوانی
ثبت شود،
خروجی در
حالت معمول
(فقط سربار self)
در perf report چیزی
شبیه به زیر
را نشان
خواهد داد:
.ft C
Overhead Symbol
........ .....................
60.00% foo
|
--- foo
bar
main
__libc_start_main
40.00% bar
|
--- bar
main
__libc_start_main
.ft
هنگامی که
گزینه --children
فعال باشد،
مقادیر
سربار self
توابع
فرزند (یعنی
foo و bar) برای
محاسبه
سربار children به
والدین
اضافه
میشوند. در
این حالت
گزارش ممکن
است به صورت
زیر نمایش
داده شود:
.ft C
Children Self Symbol
........ ........ ....................
100.00% 0.00% __libc_start_main
|
--- __libc_start_main
100.00% 0.00% main
|
--- main
__libc_start_main
100.00% 40.00% bar
|
--- bar
main
__libc_start_main
60.00% 60.00% foo
|
--- foo
bar
main
__libc_start_main
.ft
در خروجی
بالا،
سربار self
تابع foo (۶۰٪)
به سربار children
مربوط به bar،
main و __libc_start_main
اضافه شد. به
همین
ترتیب،
سربار self
تابع bar (۴۰٪)
به سربار children
مربوط به main
و \_\_libc_start_main
افزوده شد.
بنابراین
\_\_libc_start_main و main
ابتدا
نمایش داده
میشوند،
چرا که
دارای
سربار children
یکسانی
(۱۰۰٪) هستند
(اگرچه
دارای
سربار self
صفر
میباشند) و
والد توابع
foo و bar هستند.
از نسخه v3.16
سربار children
بهطور
پیشفرض
نمایش داده
میشود و
خروجی بر
اساس
مقادیر آن
مرتب
میگردد.
سربار children با
مشخص کردن
گزینه --no-children در
خط فرمان یا
با افزودن
report.children = false یا top.children = false
در فایل
پیکربندی perf
غیرفعال
میشود..SH
"همچنین
ببینید (SEE ALSO)"
perf-stat(1), perf-list(1),
perf-report(1)