| PERF-ANNOTATE(1) | perf Manual | PERF-ANNOTATE(1) |
نام (NAME)
perf-annotate - خواندن perf.data (ایجاد شده توسط perf record) و نمایش کد حاشیهنویسیشده
خلاصه دستور (SYNOPSIS)
perf annotate [-i <file> | --input=file] [symbol_name]
توضیحات (DESCRIPTION)
این دستور فایل ورودی را میخواند و نسخهای حاشیهنویسیشده از کد را نمایش میدهد. اگر فایل شیء دارای نمادهای اشکالزدایی (debug symbols) باشد، کد منبع در کنار کد اسمبلی نمایش داده خواهد شد.
اگر اطلاعات اشکالزدایی در فایل شیء موجود نباشد، کد اسمبلی حاشیهنویسیشده نمایش داده میشود.
گزینهها (OPTIONS)
-i, --input=<file>
-d, --dsos=<dso[,dso...]>
-s, --symbol=<symbol>
-f, --force
-v, --verbose
-q, --quiet
-n, --show-nr-samples
-D, --dump-raw-trace
-k, --vmlinux=<file>
--ignore-vmlinux
--itrace
i تولید رویدادهای instructions
y تولید رویدادهای cycles
b تولید رویدادهای branches
c تولید رویدادهای branches (فقط calls)
r تولید رویدادهای branches (فقط returns)
x تولید رویدادهای transactions
w تولید رویدادهای ptwrite
p تولید رویدادهای power (شامل رویدادهای PSB برای Intel PT)
o تولید سایر رویدادهای ضبطشده بر اثر استفاده
از aux-output (به perf record مراجعه کنید)
I تولید رویدادهای وقفه یا مشابه آن (ناهمگام)
(مانند Intel PT Event Trace)
e تولید رویدادهای error
d ایجاد یک گزارش اشکالزدایی (debug log)
f تولید رویدادهای حافظه پنهان سطح اول (first level cache)
m تولید رویدادهای حافظه پنهان سطح آخر (last level cache)
M تولید رویدادهای حافظه (memory)
t تولید رویدادهای TLB
a تولید رویدادهای دسترسی از راه دور (remote access)
g تولید یک زنجیره فراخوانی (همراه با i یا x استفاده شود)
G تولید یک زنجیره فراخوانی روی رکوردهای رویداد موجود
l تولید ورودیهای آخرین شاخه (همراه با i یا x استفاده شود)
L تولید ورودیهای آخرین شاخه روی رکوردهای رویداد موجود
s رد کردن تعداد اولیهای از رویدادها
q رمزگشایی سریعتر (با جزئیات کمتر)
A تقریب زدن IPC
Z ترجیح دادن نادیده گرفتن برچسبهای زمانی (رمزگشایی بهاصطلاح "timeless")
T استفاده از برچسب زمانی ردیابی به عنوان زمان هسته (kernel time)
حالت پیشفرض شامل تمام رویدادها است، یعنی معادل با --itrace=iybxwpe، به جز برای perf script که در آن به صورت --itrace=ce است
علاوه بر این، دوره (پیشفرض 100000، به جز برای perf script که در آن 1 است) برای رویدادهای instructions را میتوان برحسب واحدهای زیر مشخص کرد:
i دستورالعملها (instructions) t تیکها (ticks) ms میلیثانیه (milliseconds) us میکروثانیه (microseconds) ns نانوثانیه (nanoseconds) (پیشفرض)
همچنین اندازه زنجیره فراخوانی (پیشفرض 16، حداکثر 1024) برای رویدادهای instructions یا transactions میتواند مشخص شود.
همچنین میتوان تعداد مدخلهای آخرین شاخه (پیشفرض 64، حداکثر 1024) را برای رویدادهای instructions یا transactions مشخص کرد.
مشابه گزینههای g و l، میتوان اندازه را برای گزینههای G و L نیز مشخص کرد. در x86، توجه داشته باشید که G و L هنگامی که دادهها با PEBS بزرگ ثبت شده باشند، عملکرد ضعیفی دارند. برای جزئیات به صفحه راهنمای linkperf:perf-intel-pt[1] مراجعه کنید.
همچنین این امکان وجود دارد که رویدادهای تولیدشده در ابتدا (instructions، branches، transactions، ptwrite، power) نادیده گرفته شوند. این برای نادیده گرفتن کدهای مقداردهی اولیه مفید است.
--itrace=i0nss1000000
یک میلیون دستورالعمل نخست را نادیده میگیرد.
گزینه 'e' میتواند با پرچمهایی دنبال شود که بر گزارش شدن یا نشدن خطاها
اثر میگذارند. هر پرچم باید با '+' یا '-' همراه باشد.
این پرچمها عبارتند از:
o سرریز (overflow)
l از دست رفتن دادههای ردگیری (trace data lost)
در صورت پشتیبانی، گزینه 'd' میتواند با پرچمهایی همراه شود که بر ثبت شدن یا
نشدن پیامهای اشکالزدایی اثر میگذارند. هر پرچم باید با '+' یا '-'
همراه باشد. این پرچمها عبارتند از:
a همه رویدادهای perf
e خروجی فقط هنگام بروز خطا (اندازه قابل پیکربندی - ارجاع به linkperf:perf-config[1])
o خروجی به stdout
در صورت پشتیبانی، گزینه 'q' میتواند برای افزایش اثر تکرار شود.
برای غیرفعال کردن کامل رمزگشایی، از --no-itrace استفاده کنید.
-m, --modules
-l, --print-line
-P, --full-paths
--stdio
--stdio2
--stdio-color=<mode>
--tui
--gtk
-C, --cpu=<cpu>
--asm-raw
--show-total-period
--source
--symfs=<directory[,layout]>
--addr2line=<path>
--objdump=<path>
--prefix=PREFIX, --prefix-strip=N
--skip-missing
--group
--demangle
--demangle-kernel
--percent-type
کلیدواژههای local/global مشخص میکنند که درصد در حوزهٔ تابع (local) محاسبه شود یا در کل دادهها (global). کلیدواژههای period/hits پایهای را که درصد بر مبنای آن محاسبه میشود تعیین میکنند - دورهٔ نمونهها یا تعداد نمونهها (hits).
--percent-limit
--data-type[=TYPE_NAME]
--type-stat
--skip-empty
--code-with-type
| 09/04/2026 | perf |