JFR(1) دستورات JDK JFR(1)

jfr - تجزیه و چاپ فایل‌های ضبط پرواز (Flight Recorder) در OpenJDK 17

برای چاپ محتویات یک ضبط پرواز در خروجی استاندارد:

jfr print [گزینه‌ها] فایل

برای چاپ اطلاعات متادیتا درباره رویدادهای ضبط پرواز:

jfr metadata فایل

برای سرهم‌بندی فایل‌های تکه (chunk) در یک فایل ضبط پرواز:

jfr assemble مخزن فایل

برای تجزیه یک فایل ضبط پرواز به فایل‌های تکه:

jfr disassemble [گزینه‌ها] فایل

برای مشاهده آمار خلاصه‌شده برای یک فایل ضبط پرواز:

jfr summary فایل

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

دستور jfr ابزاری برای تعامل با فایل‌های ضبط پرواز (.jfr) فراهم می‌کند. کارکرد اصلی آن فیلتر کردن، خلاصه‌سازی و خروجی دادن فایل‌های ضبط پرواز در قالبی قابل خواندن توسط انسان است. همچنین پشتیبانی برای ادغام و تقسیم فایل‌های ضبط وجود دارد.

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

دستور jfr دارای چندین زیردستور است:

•
print
•
summary
•
assemble
•
disassemble
•
metadata

از jfr print برای چاپ محتویات یک فایل ضبط پرواز در خروجی استاندارد استفاده کنید. نحو دستور عبارت است از:

jfr print [--xml|--json] [--categories <فیلترها>] [--events <فیلترها>] [--stack-depth <عمق>] <فایل>

که در آن:

چاپ ضبط در قالب XML
چاپ ضبط در قالب JSON
انتخاب رویدادهای منطبق با یک نام دسته‌بندی. فیلتر یک لیست جداشده با کاما از نام‌ها (ساده و/یا واجد شرایط) و/یا الگوهای glob درون نقل‌قول است
انتخاب رویدادهای منطبق با یک نام رویداد. فیلتر یک لیست جداشده با کاما از نام‌ها (ساده و/یا واجد شرایط) و/یا الگوهای glob درون نقل‌قول است
تعداد فریم‌ها در ردپای پشته (stack trace)، به طور پیش‌فرض ۵
<فایل>
مکان فایل ضبط (.jfr)

قالب پیش‌فرض برای چاپ محتویات فایل ضبط پرواز، فرمت قابل خواندن توسط انسان است مگر اینکه xml یا json مشخص شده باشد. این گزینه‌ها خروجی ماشین‌خوان ارائه می‌دهند که می‌تواند توسط اسکریپت‌های ایجادشده توسط کاربر تجزیه یا پردازش شود.

برای مشاهده نمونه استفاده از فیلترها از jfr --help print استفاده کنید.

برای کاهش مقدار داده‌های نمایش‌داده‌شده، فیلتر کردن رویدادها یا دسته‌بندی‌های رویدادها امکان‌پذیر است. فیلتر بر روی نام نمادین یک رویداد (تنظیم‌شده با استفاده از حاشیه‌نویسی @Name)، یا نام دسته‌بندی (تنظیم‌شده با استفاده از حاشیه‌نویسی @Category) عمل می‌کند. اگر از چندین فیلتر استفاده شود، رویدادهای هر دو فیلتر گنجانده خواهند شد. اگر هیچ فیلتری استفاده نشود، تمام رویدادها چاپ می‌شوند. اگر ترکیبی از یک فیلتر دسته‌بندی و یک فیلتر رویداد استفاده شود، رویدادهای انتخاب‌شده اجتماع دو فیلتر خواهند بود.

به عنوان مثال، برای نمایش تمام رویدادهای GC و رویداد CPULoad، می‌توان از دستور زیر استفاده کرد:

jfr print --categories GC --events CPULoad recording.jfr

مقادیر رویداد بر اساس انواع محتوایی که مورد استفاده قرار می‌گیرند قالب‌بندی می‌شوند. به عنوان مثال، یک فیلد با حاشیه‌نویسی jdk.jfr.Percentage که دارای مقدار 0.52 است به صورت 52% قالب‌بندی می‌شود.

ردپاهای پشته به طور پیش‌فرض به ۵ فریم کوتاه می‌شوند، اما این تعداد را می‌توان با استفاده از گزینه خط فرمان --stack-depth افزایش یا کاهش داد.

از jfr summary برای چاپ آمار مربوط به یک ضبط استفاده کنید. برای مثال، یک خلاصه می‌تواند تعداد رویدادهای ضبط‌شده و میزان فضای دیسکی را که استفاده کرده‌اند نشان دهد. این امر برای عیب‌یابی و درک تأثیر تنظیمات رویداد مفید است.

نحو دستور عبارت است از:

jfr summary <فایل>

که در آن:

<فایل>
مکان فایل ضبط پرواز (.jfr)

از jfr metadata برای مشاهده اطلاعات مربوط به رویدادها، مانند نام رویدادها، دسته‌بندی‌ها و چیدمان فیلدها در یک فایل ضبط پرواز استفاده کنید. نحو دستور عبارت است از:

jfr metadata <فایل>

که در آن:

<فایل>
مکان فایل ضبط پرواز (.jfr)

از jfr assemble برای سرهم‌بندی فایل‌های تکه (chunk) در یک فایل ضبط استفاده کنید.

نحو دستور عبارت است از:

jfr assemble <مخزن> <فایل>

که در آن:

<مخزن>
دایرکتوری که مخزن حاوی فایل‌های تکه در آن قرار دارد
<فایل>
مکان فایل ضبط پرواز (.jfr)

اطلاعات ضبط پرواز در قالب تکه‌ها (chunks) نوشته می‌شوند. یک تکه حاوی تمام اطلاعات لازم برای تجزیه است. یک تکه معمولاً شامل رویدادهای مفید برای عیب‌یابی است. در صورتی که یک JVM کرش کند، این تکه‌ها قابل بازیابی هستند و می‌توان از آن‌ها برای ایجاد یک فایل ضبط پرواز با استفاده از این دستور jfr assemble استفاده کرد. این فایل‌های تکه به ترتیب زمانی به هم متصل می‌شوند و فایل‌های تکه‌ای که کامل نشده‌اند (.part) نادیده گرفته می‌شوند.

از jfr disassemble برای تجزیه یک فایل ضبط پرواز به قطعات فایل تکه آن استفاده کنید. نحو دستور عبارت است از:

jfr disassemble [--max-chunks <تکه‌ها>] [--output <دایرکتوری>] <فایل>

که در آن:

مکان نوشتن فایل‌های تجزیه‌شده، به طور پیش‌فرض دایرکتوری جاری
حداکثر تعداد تکه‌ها در هر فایل، به طور پیش‌فرض ۵. اندازه تکه متفاوت است، اما معمولاً حدود ۱۵ مگابایت است.
حداکثر تعداد بایت در هر فایل.
<فایل>
مکان فایل ضبط پرواز (.jfr)

این قابلیت می‌تواند برای تعمیر یک فایل خراب با حذف تکه معیوب مفید باشد. همچنین می‌توان از آن برای کاهش اندازه فایلی که برای انتقال بیش از حد بزرگ است استفاده کرد. فایل‌های تکه حاصل با نام‌های myfile_1.jfr، myfile_2.jfr و غیره نام‌گذاری می‌شوند. در صورت نیاز، نام‌های فایل‌های حاصل با صفر پر می‌شوند تا ترتیب زمانی حفظ شود. برای مثال، اگر ضبط شامل بیش از ۱۰۰ تکه باشد، نام فایل تکه myfile_001.jfr خواهد بود.

از jfr --version یا jfr version برای مشاهده اطلاعات رشته نسخه برای این دستور jfr استفاده کنید.

برای دریافت راهنما در مورد هر یک از زیردستورهای jfr، استفاده کنید از:

jfr <--help|help> [زیردستور]

که در آن:

[زیردستور] یکی از موارد زیر است:

•
print
•
metadata
•
summary
•
assemble
•
disassemble
2021 JDK 17