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

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

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

jfr print [گزینه‌ها] file

برای نمایش داده‌های تجمیع‌شده رویدادها در خروجی استاندارد:

jfr view [گزینه‌ها] file

برای پیکربندی یک فایل تنظیمات .jfc:

jfr configure [گزینه‌ها]

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

jfr metadata [file]

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

jfr summary file

برای حذف رویدادها از یک فایل ضبط پرواز:

jfr scrub [گزینه‌ها] file

برای سرهم‌کردن قطعه‌فایل‌ها در یک فایل ضبط پرواز:

jfr assemble repository file

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

jfr disassemble [گزینه‌ها] file

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

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

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

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

  • print
  • view
  • configure
  • metadata
  • summary
  • scrub
  • assemble
  • disassemble

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

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

jfr print [--xml|--json|--exact] [--categories <filters>] [--events <filters>] [--stack-depth <depth>] <file>

که در آن:

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

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

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

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

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

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

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

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

از jfr view برای تجمیع و نمایش داده‌های رویداد در خروجی استاندارد استفاده کنید.

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

jfr view [--verbose] [--width <integer>] [--truncate <mode>] [--cell-height <integer>] <view> <file>

که در آن:

پرس‌وجویی (query) که نما را تشکیل می‌دهد نمایش می‌دهد.
عرض نما بر حسب تعداد نویسه‌ها. مقدار پیش‌فرض به نوع نما بستگی دارد.
نحوه کوتاه کردن محتوایی که از فضای یک سلول جدول فراتر می‌رود. حالت می‌تواند 'beginning' یا 'end' باشد. مقدار پیش‌فرض 'end' است.
حداکثر تعداد ردیف‌ها در یک سلول جدول. مقدار پیش‌فرض به نوع نما بستگی دارد.
<view>
نام نما یا نوع رویداد برای نمایش. برای مشاهده فهرستی از نماهای موجود از jfr --help view استفاده کنید.
<file>
مسیر فایل ضبط (.jfr).

پارامتر <view> می‌تواند نام یک نوع رویداد باشد. برای مشاهده فهرست، از jfr view types <file> استفاده کنید. برای نمایش تمام نماها، از jfr view all-views <file> استفاده کنید. برای نمایش تمام رویدادها، از jfr view all-events <file> استفاده کنید.

از jfr configure برای پیکربندی یک فایل تنظیمات .jfc استفاده کنید.

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

jfr configure [--interactive] [--verbose] [--input <files>] [--output <file>] [option=value]* [event-setting=value]*

حالت تعاملی که در آن پیکربندی توسط مجموعه‌ای از پرسش‌ها تعیین می‌شود.
تنظیمات اصلاح‌شده را نمایش می‌دهد.
فهرستی جداشده با کاما از فایل‌های .jfc که پیکربندی جدید بر پایه آن‌ها است. اگر هیچ فایلی مشخص نشود، از فایل پیش‌فرض در JDK استفاده می‌شود (default.jfc). اگر 'none' مشخص شود، پیکربندی جدید به صورت خالی آغاز می‌شود.
نام فایل خروجی تولیدشده. اگر مشخص نشود، از نام فایل custom.jfc استفاده خواهد شد.
مقدار گزینه‌ای که باید تغییر کند. برای دیدن گزینه‌های موجود، از jfr help configure استفاده کنید.
مقدار تنظیم رویداد که باید تغییر کند. از این قالب استفاده کنید: <event-name>#<setting-name>=<value> برای افزودن یک تنظیم رویداد جدید، نام رویداد را با '+' پیشوندگذاری کنید.

جداکننده فاصله می‌تواند برای مقادیر بازه زمانی حذف شود، مانند 20ms. برای اطلاعات بیشتر درباره نحو تنظیمات، به Javadoc بسته jdk.jfr مراجعه فرمایید.

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

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

jfr metadata [--categories <filter>] [--events <filter>] [<file>]

انتخاب رویدادهای منطبق با یک نام دسته‌بندی. فیلتر یک فهرست جداشده با کاما از نام‌ها (ساده و/یا واجد شرایط کامل) و/یا الگوهای گلوب داخل گیومه است.
انتخاب رویدادهای منطبق با یک نام رویداد. فیلتر یک فهرست جداشده با کاما از نام‌ها (ساده و/یا واجد شرایط کامل) و/یا الگوهای گلوب داخل گیومه است.
<file>
مسیر فایل ضبط (.jfr).

اگر پارامتر <file> حذف شود، از متاداده همان JDK که ابزار 'jfr' در آن قرار دارد استفاده خواهد شد.

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

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

jfr summary <file>

که در آن:

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

از jfr scrub برای حذف محتویات حساس از یک فایل یا کاهش اندازه آن استفاده کنید.

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

jfr scrub [--include-events <filter>] [--exclude-events <filter>] [--include-categories <filter>] [--exclude-categories <filter>] [--include-threads <filter>] [--exclude-threads <filter>] <input-file> [<output-file>]

انتخاب رویدادهای منطبق با یک نام رویداد.
مستثنی‌کردن رویدادهای منطبق با یک نام رویداد.
انتخاب رویدادهای منطبق با یک نام دسته‌بندی.
مستثنی‌کردن رویدادهای منطبق با یک نام دسته‌بندی.
انتخاب رویدادهای منطبق با یک نام ریسه (thread).
مستثنی‌کردن رویدادهای منطبق با یک نام ریسه.
<input-file>
فایل ورودی برای خواندن رویدادها از آن.
<output-file>
فایل خروجی برای نوشتن رویدادهای پالایش‌شده در آن. اگر فایلی مشخص نشود، در همان مسیر فایل ورودی اما با افزودن "-scrubbed" به انتهای نام فایل نوشته خواهد شد.

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

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

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

jfr assemble <repository> <file>

که در آن:

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

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

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

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

jfr disassemble [--max-chunks <chunks>] [--output <directory>] <file>

که در آن:

محل ذخیره فایل‌های تفکیک‌شده، به طور پیش‌فرض دایرکتوری جاری.
حداکثر تعداد قطعات در هر فایل، به طور پیش‌فرض 5. اندازه قطعه متغیر است، اما معمولاً حدود 15 مگابایت است.
حداکثر تعداد بایت در هر فایل.
<file>
مسیر فایل ضبط پرواز (.jfr).

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

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

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

jfr <--help|help> [subcommand]

که در آن:

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

  • print
  • view
  • configure
  • metadata
  • summary
  • scrub
  • assemble
  • disassemble
2026 JDK 26.0.2.1