PERF-TIMECHART(1) perf Manual PERF-TIMECHART(1)

perf-timechart - ابزاری برای مصورسازی رفتار کلی سیستم در حین یک بار کاری

دو حالت کارکرد برای perf timechart وجود دارد:

دستور 'perf timechart record <command>' برای ضبط رویدادهای سطح سیستم
یک بار کاری دلخواه. به‌طور پیش‌فرض timechart فقط رویدادهای زمان‌بند
و پردازنده (تغییر تسک‌ها، زمان‌های اجرا، وضعیت توان پردازنده و غیره) را ضبط می‌کند،
اما امکان ضبط فعالیت‌های IO (دیسک، شبکه) با استفاده از آرگومان -I نیز وجود دارد.
دستور 'perf timechart' برای تبدیل یک ردگیری به یک فایل گرافیک برداری مقیاس‌پذیر (SVG)،
که می‌تواند با نمایش‌دهنده‌های محبوب SVG مانند 'Inkscape' مشاهده شود. بسته
به رویدادهای موجود در فایل perf.data، نمودار timechart شامل رویدادهای زمان‌بند/پردازنده
یا رویدادهای IO خواهد بود.
در حالت IO، هر نوار دارای دو نمودار است: بالایی و پایینی.
نوار بالایی رویدادهای ورودی (خواندن دیسک، بسته‌های دریافتی شبکه) را نشان می‌دهد.
نوار پایینی رویدادهای خروجی (نوشتن دیسک، بسته‌های ارسالی شبکه) را نشان می‌دهد.
همچنین نوارهای poll وجود دارند که نشان می‌دهند برنامه چه مقدار زمان را در
فراخوان‌های سیستمی poll/epoll/select صرف کرده است.

-o, --output=

انتخاب فایل خروجی (پیش‌فرض: output.svg)

-i, --input=

انتخاب فایل ورودی (پیش‌فرض: perf.data مگر اینکه stdin یک fifo باشد)

-w, --width=

انتخاب عرض فایل SVG (پیش‌فرض: 1000)

-P, --power-only

تنها خروجی دادن بخش مصرف توان پردازنده از نمودار

-T, --tasks-only

انتقال‌های وضعیت پردازنده در خروجی آورده نشوند

-p, --process

انتخاب فرآیندها برای نمایش، بر اساس نام یا PID

-f, --force

بدون شکایت، انجام بده.

--symfs=<directory[,layout]>

جستجو برای فایل‌های دارای نماد به‌صورت نسبی نسبت به این دایرکتوری. چیدمان اختیاری می‌تواند hierarchy (پیش‌فرض، تطبیق با مسیر کامل) یا flat (تنها تطبیق با نام پایه) باشد. این گزینه زمانی مفید است که فایل‌های اشکال‌زدایی در یک ساختار دایرکتوری مسطح ذخیره شده باشند.

-n, --proc-num

چاپ اطلاعات تسک حداقل برای تعداد مشخص‌شده از تسک‌ها.

-t, --topology

مرتب‌سازی پردازنده‌ها بر اساس مکان‌شناسی (توپولوژی).

--highlight=<duration_nsecs|task_name>

برجسته‌سازی تسک‌ها (با رنگ متفاوت) که بیش از مدت‌زمان مشخص اجرا شده‌اند یا تسک‌هایی با نام مشخص‌شده. اگر عدد داده شود، به عنوان تعداد نانوثانیه تفسیر می‌شود. اگر یک رشته غیرعددی داده شود، به عنوان نام تسک تفسیر می‌شود.

--io-skip-eagain

رویدادهای IO مربوط به EAGAIN رسم نشوند.

--io-min-time=<nsecs>

رسم رویدادهای کوچک به‌گونه‌ای که گویی به اندازه min-time طول کشیده‌اند. زمانی مفید است که نیاز دارید IOهای بسیار کوچک و سریع را مشاهده کنید. امکان مشخص کردن پسوند ms یا us برای تعیین زمان به میلی‌ثانیه یا میکروثانیه وجود دارد. مقدار پیش‌فرض 1ms است.

--io-merge-dist=<nsecs>

ادغام رویدادهایی که به اندازه merge-dist نانوثانیه با هم فاصله دارند. این کار تعداد شکل‌ها را در SVG کاهش داده و رندر شدن آن را بهینه‌تر می‌کند. امکان مشخص کردن پسوند ms یا us برای تعیین زمان به میلی‌ثانیه یا میکروثانیه وجود دارد. مقدار پیش‌فرض 1us است.

-P, --power-only

تنها رویدادهای مرتبط با توان ضبط شوند

-T, --tasks-only

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

-I, --io-only

تنها رویدادهای مرتبط با IO ضبط شوند

-g, --callchain

ضبط نمودار فراخوانی (زنجیره پشته/backtrace) انجام شود

-o, --output=

انتخاب فایل خروجی (پیش‌فرض: perf.data)

$ perf timechart record git pull

[ perf record: Woken up 13 times to write data ]
[ perf record: Captured and wrote 4.253 MB perf.data (~185801 samples) ]

$ perf timechart

Written 10.2 seconds of trace to output.svg.

ضبط نمودار زمانی در سطح کل سیستم:

$ perf timechart record
سپس تولید نمودار زمانی و برجسته‌سازی تسک‌های 'gcc':
$ perf timechart --highlight gcc

ضبط رویدادهای IO در سطح کل سیستم:

$ perf timechart record -I
سپس تولید نمودار زمانی:
$ perf timechart

perf-record(1)

09/04/2026 perf