يدرس هذه المقالة بشكل رئيسي هجرة معلمات سجل JAVA9 GC.
قطع التسجيل الذي يوحد JVM و GC
قدمت JAVA9 إطار عمل موحد ، وقد تضمن أيضًا إخراج وتكوين السجل المتعلق بـ GC.
ذات صلة JEP (اقتراح تعزيز JDK)
بناء الجملة Xlog
-xlog [: OPTION] الخيار: = [<wh>]] [: [<rupute>] [: [<Degicators>] [: <ruption-options>]]] '"تعطيل' 'تعطيل' what: = <ecrector> [، ...] concect 'stderr' 'stdout' [file =] <filename> الديكور: = <decorator> [، ...] "لا شيء" ديكور: = وقت التشغيل timemillis uptimeMillis timenanos uptimenanos pid tid tabs tags-filts inptions in kb> vileting in kb>
ماذا
بشكل رئيسي تكوين العلامة والمستوى
علامة
حيث يمثل جميع العلامات ، والآخرون على النحو التالي:
إضافة ، العمر ، تخصيص ، التعليقات التوضيحية ، AOT ، الحجج ، الإرفاق ، الحاجز ، التحيز ، الكتل ، الروبوت ، نقطة الإيقاف ، BYTECODE ، التعداد ، الفئة ، classshisto ، التنظيف ، الضغط ، المقارنة ، القيود ، CONTANTERPOOL ، COOPS ، CPU ، كومة ، humongous ، ihop ، iklass ، init ، itables ، jfr ، jni ، jvmti ، lovious ، load ، load ، تسجيل ، علامة ، علامة ، metaData ، metaspace ، methy ، mu ، modules ، monitorinflatio n ، monitormish ، nmethod ، nmethod ، compithing outgging ، ooopt ، ooop ، op. المراحل ، PLAB ، preorder ، الترويج ، الحماية ، تطهير ، إعادة تعريف ، المرجع ، صقل ، المنطقة ، REMST ، حل ، safepoint ، النشر ، scru b ، الإعداد ، stackmap ، stacktrace ، stackwalk ، ابدأ ، start ، state ، stats ، stringded ، stringt ، subclass ، Survivor ، sport ، task ، time ، time ، timer ، unlab ، tlab ، tlab ، vmoperation ، vtables ، workgang
مستوى
مقسمة بشكل أساسي إلى OFF ، تتبع ، تصحيح ، معلومات ، تحذير ، خطأ
الإخراج
- stdout (`يرسل الإخراج إلى stdout`)- stderr (` يرسل الإخراج إلى stderr`)- file = filename (`يرسل الإخراج إلى ملفات نصي (s)`)
هناك ثلاثة أنواع على النحو الوارد أعلاه. إذا قمت بتحديد ملف ، فيمكنك استخدام متغير ٪ P لتمثيل PID الحالي لـ JVM واستخدام ٪ T لتمثيل ختم وقت البدء لـ JVM. على سبيل المثال
-xlog: GC: DemoApp-GC- ٪ p- ٪ t.log
اسم ملف الإخراج كما يلي:
DEMOAPP-GC-1678-2018-03-01_21-44-18.LOG
ديكور
إذا لم يتم تحديدها ، فإن الافتراضي هو وقت التشغيل والمستوى والعلامات. على سبيل المثال
[3.080s] [info] [GC ، CPU] مستخدم GC (5) = 0.03S SYS = 0.00S Real = 0.01S
مثال
-xlog: gc = trace: file = gctrace.txt: uptimeMillis ، pid: fileCount = 5 ، filedize = 1024
العلامة هي GC ، Levle Is Trace ، Files Rotate هي 5 ، كل ملف هو 1M ، اسم الملف هو gctrace.txt ، dructators uptimeMillis و pid
مثيل الإخراج
[1110ms] [1867] GC (2) الإيقاف المؤقت لـ 17m-> 17m (256m) 2.024ms [1110ms] [1867] GC (2) اللمسات الأخيرة على البيانات الحية 0.000ms [1110ms] 7.470ms [2951ms] [1867] GC (3) إيقاف العلامة الأولية (عتبة بيانات التعريف GC) 149m-> 30m (256m) 27.175ms [2951ms] [1867] GC (4) دورة متزامنة [2972ms] [1867] GC (4). 5.132ms [2974ms] [1867] GC (4) اللمسات الأخيرة على البيانات الحية 0.000ms [2974ms] [1867] GC (4) Cleanup 32M-> 32M (256M) 0.214ms [2976ms] [1867] GC (4)
ترحيل المعلمات ذات الصلة من GC القديمة
| علم القمامة القديمة (GC) العلم | تكوين Xlog | تعليق |
|---|---|---|
| G1PrinTheApreactions | -xlog: GC+Region = Trace | لا ينطبق |
| gclogfilesize | لا يوجد تكوين متاح | يتم التعامل مع دوران السجل بواسطة الإطار. |
| NumberOfGClogfiles | لا ينطبق | يتم التعامل مع دوران السجل بواسطة الإطار. |
| printAdaptivesizePolicy | -xlog: ergo*= المستوى | استخدم مستوى من الأخطاء لمعظم المعلومات ، أو مستوى من التتبع لجميع ما تم تسجيله لـ PrintAdaptivesizePolicy. |
| printgc | -xlog: GC | لا ينطبق |
| printgcapplicationConcurrentTime | -xlog: SafePoint | لاحظ أنه يتم تسجيل printgcapplicationConcurrentTime و printgcapplicationStoppedTime على نفس العلامة ولا يتم فصلهم في التسجيل الجديد. |
| printgcapplicationStoppedTime | -xlog: SafePoint | لاحظ أنه يتم تسجيل printgcapplicationConcurrentTime و printgcapplicationStoppedTime على نفس العلامة ولم يتم فصلها في التسجيل الجديد. |
| printgccause | لا ينطبق | يتم تسجيل سبب GC الآن دائمًا. |
| printGcDateStamps | لا ينطبق | يتم تسجيل طوابع التاريخ بواسطة الإطار. |
| printgcdetails | -xlog: GC* | لا ينطبق |
| printgcid | لا ينطبق | معرف GC يتم تسجيله دائمًا دائمًا. |
| printgctasktimestamps | -xlog: Task*= Debug | لا ينطبق |
| printgctimestamps | لا ينطبق | يتم تسجيل الطوابع الزمنية بواسطة الإطار. |
| الطباعة | -xlog: GC+HEAP = TRACE | لا ينطبق |
| printreferenceGC | -xlog: Ref*= debug | لاحظ أنه في التسجيل القديم ، كان لـ PrinTreferenceGC تأثير فقط إذا تم تمكين PrintGcDetails أيضًا. |
| PrintStringDeduplicationStatistics | -xlog: StringDedup*= debug | لا ينطبق |
| printureingDistribution | -xlog: العمر*= المستوى | استخدم مستوى من الأخطاء للحصول على أكثر المعلومات ذات الصلة ، أو مستوى تتبع لجميع ما تم تسجيله للمساعدات المطبوعة. |
| usegclogfilerotation | لا ينطبق | ما تم تسجيله للطباعة. |
ترحيل معلمة وقت التشغيل القديمة
| علم وقت التشغيل القديم | تكوين Xlog | تعليق |
|---|---|---|
| TraceExceptions | -xlog: استثناءات = معلومات | لا ينطبق |
| TraceClassloading | -xlog: class+load = Level | استخدم المستوى = معلومات للحصول على معلومات منتظمة ، أو مستوى = تصحيح للحصول على معلومات إضافية. في بناء جملة التسجيل الموحد ، -Verbose: فئة يساوي -xlog: فئة+تحميل = info ، فئة+unload = info. |
| traceClassloadingPreorder | -xlog: class+preorder = debug | لا ينطبق |
| TraceClassunloading | -xlog: فئة+تفريغ = المستوى | استخدم المستوى = معلومات للحصول على معلومات منتظمة ، أو مستوى = تتبع للحصول على معلومات إضافية. في بناء جملة التسجيل الموحد ، -Verbose: فئة يساوي -xlog: فئة+تحميل = info ، فئة+unload = info. |
| التخفيف | -xlog: التحقق = معلومات | لا ينطبق |
| traceclasspaths | -xlog: class+path = info | لا ينطبق |
| traceClassResolution | -xlog: Class+Resolve = debug | لا ينطبق |
| traceclassinitialization | -xlog: class+init = info | لا ينطبق |
| TraceloaderConstraints | -xlog: class+loader+قيود = معلومات | لا ينطبق |
| TraceClassloaderData | -xlog: class+loader+data = Level | استخدم المستوى = تصحيح المعلومات العادية أو المستوى = تتبع للحصول على معلومات إضافية. |
| TracesafePointCleanuptime | -xlog: safepoint+cleanup = info | لا ينطبق |
| TracesafePoint | -xlog: safepoint = debug | لا ينطبق |
| تريسيونتورات | -xlog: swaterInflation = debug | لا ينطبق |
| tracebiasedlocking | -xlog: BiasedLocking = المستوى | استخدم المستوى = معلومات للحصول على معلومات منتظمة ، أو مستوى = تتبع للحصول على معلومات إضافية. |
| traceredefineclasses | -xlog: redefine+class*= المستوى | المستوى = info و = debug و = trace يوفر كميات متزايدة من المعلومات. |
يقوم Java9 أيضًا بتوحيد اختيار وإخراج تسجيل الدخول إلى Xlog ، ويمكن ترحيله وفقًا لجدول الترحيل الذي قدمه المسؤول.