jmap(1) Troubleshooting Tools jmap(1)

jmap - نگاشت‌های حافظه شیء اشتراکی یا جزئیات حافظه heap را برای یک فرآیند، فایل core یا کارساز اشکال‌زدایی دوردست چاپ می‌کند. این دستور آزمایشی است و پشتیبانی نمی‌شود.

jmap [ options ] pid
jmap [ options ] executable core
jmap [ options ] [ pid ] server-id@ ] remote-hostname-or-IP
گزینه‌های خط فرمان. بخش گزینه‌ها را ببینید.
شناسه فرآیند (PID) که نگاشت حافظه آن باید چاپ شود. این فرآیند باید یک فرآیند Java باشد. برای دریافت فهرست فرآیندهای Java در حال اجرا روی سامانه، از دستور jps(1) استفاده کنید.
فایل اجرایی Java که روگرفت حافظه (core dump) از آن تولید شده است.
فایل core که نگاشت حافظه آن باید چاپ شود.
نام میزبان (hostname) یا نشانی IP کارساز اشکال‌زدایی دوردست. jsadebugd(1) را ببینید.
یک شناسه اختیاری و یکتا برای استفاده در حالتی که چندین کارساز اشکال‌زدایی روی یک میزبان دوردست در حال اجرا هستند.

دستور jmap نگاشت‌های حافظه شیء اشتراکی یا جزئیات حافظه heap مربوط به یک فرآیند مشخص، فایل core یا کارساز اشکال‌زدایی دوردست را چاپ می‌کند. اگر فرآیند مشخص‌شده روی یک ماشین مجازی جاوا (JVM) ۶۴ بیتی در حال اجرا است، ممکن است نیاز به تعیین گزینه -J-d64 داشته باشید؛ برای نمونه: jmap-J-d64 -heap pid.

نکته: این ابزار پشتیبانی نمی‌شود و ممکن است در نگارش‌های آینده JDK در دسترس نباشد. در سامانه‌های ویندوزی که فایل dbgeng.dll در آن‌ها وجود ندارد، ابزارهای اشکال‌زدایی برای ویندوز (Debugging Tools For Windows) باید نصب شوند تا این ابزارها کار کنند. متغیر محیطی PATH باید شامل مسیر فایل jvm.dll مورد استفاده فرآیند هدف یا مسیری باشد که فایل روگرفت خرابی (crash dump) از آنجا ایجاد شده است؛ برای نمونه: set PATH=%JDK_HOME%\jre\bin\client;%PATH%.

<no option>
هنگامی که هیچ گزینه‌ای استفاده نشود، دستور jmap نگاشت‌های اشیاء اشتراکی را چاپ می‌کند. برای هر شیء اشتراکی بارگذاری‌شده در JVM هدف، نشانی آغازین، اندازه نگاشت و مسیر کامل فایل شیء اشتراکی چاپ می‌شود. این رفتار شبیه به ابزار pmap در Oracle Solaris است.

یک روگرفت از حافظه heap جاوا در قالب باینری hprof در filename ذخیره می‌کند. زیرگزینه live اختیاری است، اما اگر مشخص شود، تنها اشیاء فعال موجود در heap ذخیره می‌شوند. برای بررسی و کاوش روگرفت heap، می‌توانید از دستور jhat(1) برای خواندن فایل تولیدشده استفاده کنید.

اطلاعات مربوط به اشیائی را که در انتظار نهایی‌سازی (finalization) هستند چاپ می‌کند.

خلاصه‌ای از heap شامل زباله‌روب (garbage collection) استفاده‌شده، پیکربندی heap و میزان مصرف heap به تفکیک نسل را چاپ می‌کند. افزون بر این، تعداد و اندازه رشته‌های intern شده (interned Strings) چاپ می‌شود.

یک هیستوگرام از حافظه heap چاپ می‌کند. برای هر کلاس جاوا، تعداد اشیاء، اندازه حافظه به بایت و نام کامل و رسمی کلاس‌ها (fully qualified class names) چاپ می‌شوند. نام کلاس‌های داخلی JVM با پیشوند ستاره (*) چاپ می‌شوند. اگر زیرگزینه live مشخص شود، تنها اشیاء فعال شمارش می‌شوند.

آمار حافظه heap جاوا را به تفکیک بارگذار کلاس (class loader) چاپ می‌کند. برای هر بارگذار کلاس، نام آن، میزان فعال بودن، نشانی، بارگذار کلاس والد و تعداد و اندازه کلاس‌های بارگذاری‌شده توسط آن چاپ می‌شود.

اجبار (Force). در حالتی که pid پاسخی نمی‌دهد، از این گزینه همراه با گزینه jmap -dump یا jmap -histo استفاده کنید. زیرگزینه live در این حالت پشتیبانی نمی‌شود.

پیام راهنما را چاپ می‌کند.

پیام راهنما را چاپ می‌کند.

پرچم flag را به ماشین مجازی جاوایی که دستور jmap در آن در حال اجراست ارسال می‌کند.

•
jhat(1)
•
jps(1)
•
jsadebugd(1)
21 November 2013 JDK 8