Cet article étudie principalement la migration des paramètres de journal Java9 GC.
Enregistrement qui unifie JVM et GC
Java9 a introduit un cadre journal unifié et a également inclus la sortie et la configuration du journal lié à GC.
JEP connexe (proposition d'amélioration JDK)
Syntaxe Xlog
-Xlog [: Option] Option: = [<What>] [: [<Output>] [: [<<corators>] [: <putput-options>]]]] 'Aide' 'Disable' What: = <lelector> [, ...] Selector: = <Ag-set> [*] [= <velde>] Tag-set: = <Agle> [+ ...] 'All' Tag: = NAM 'stdout' [file =] <fileName> décorateurs: = <corator> [, ...] 'Aucun' décorateur: = Time Uptime timemillis uptimemillis timenanos uptimemenanos pid tid level balises de sortie: = <putput_option> [, ...] output-option: = fileCount = <File Coundsize = <file size in kb> Paramètre = Valent = Valent = Valent = Valent = Valent = fichier> FileSize = <Fichier Taille dans KB> Paramètre = Valent = Valent = Valent = Valent = File CoupleSize = <File Taille dans KB> Paramètre = Valent = Valent = Valent = Valent)
Quoi
Configurer principalement la balise et le niveau
étiqueter
Lorsque tout représente toutes les balises, les autres sont les suivantes:
Ajouter, l'âge, l'alloc, l'annotation, AOT, les arguments, l'attachement, la barrière, le blocage biaisé, les blocs, le bot, le point d'arrêt, le bytecode, le recensement, la classe, le CLASSHISTO, le nettoyage, le compactage, le comparateur, les contraintes, la constante, les coopératives, le CPU, le CSET, les données, les défaut de défaut Heap, Humongous, IHOP, Iklass, init, itables, JFR, JNI, JVMTI, Lipity, Load, Loader, Logging, Mark, Marking, Metadata, Metaspace, Method, Mu, Modules, MonitorInflatio n, Monitormismatch, NMethod, Parser, Patching, Obrsolete, OoopMap phases, plab, précommande, promotion, protectionnom, purge, redéfinir, refineux, affiner, région, remset, résolution, safepoint, scange, scru b, set VMOPERATION, VTABLES, WORKGANG
niveau
Principalement divisé en off, trace, débogage, info, avertissement, erreur
sortir
- stdout (`envoie la sortie à stdout`) - stderr (` envoie la sortie à stderr`) - file = filename (`envoie la sortie au fichier texte`)
Il existe trois types comme ci-dessus. Si vous spécifiez un fichier, vous pouvez utiliser la variable% P pour représenter le PID de JVM actuel et utiliser% T pour représenter l'heure de début de JVM. Par exemple
-Xlog: GC: DemoApp-GC-% P-% T.Log
Le nom du fichier de sortie est le suivant:
Demoapp-GC-1678-2018-03-01_21-44-18.log
décorateurs
S'il n'est pas spécifié, la valeur par défaut est la disponibilité, le niveau et les balises. Par exemple
[3.080s] [info] [GC, CPU] GC (5) utilisateur = 0,03S sys = 0,00s réel = 0,01s
Exemple
-Xlog: gc = trace: file = gctrace.txt: uptimemillis, pid: fileCount = 5, fileSize = 1024
La balise est GC, Levle est trace, les fichiers rotatifs sont 5, chaque fichier est de 1 m, le nom du fichier est gctrace.txt, les décotateurs sont uptimemillis et pid
Instance de sortie
[1110ms] [1867] GC (2) Pause Remarque 17m-> 17m (256m) 2,024ms [1110ms] [1867] GC (2) Finaliser les données en direct 0,000ms [1110m 7,470 ms [2951m 5.132ms [2974ms] [1867] GC (4) Finaliser les données en direct 0,000ms [2974m
Migration des paramètres connexes de l'ancien GC
| Drapeau de la collection d'ordures hérités (GC) | Configuration Xlog | Commentaire |
|---|---|---|
| G1printheregregions | -Xlog: gc + région = trace | Non applicable |
| Gclogfilesize | Aucune configuration disponible | La rotation du journal est gérée par le cadre. |
| NuméroOfgClogFiles | Non applicable | La rotation du journal est gérée par le cadre. |
| Printadaptiveizolicy | -Xlog: ergo * = niveau | Utilisez un niveau de débogage pour la plupart des informations, ou un niveau de trace pour tout ce qui a été enregistré pour PrintadaptiveSizolicy. |
| Printgc | -Xlog: GC | Non applicable |
| PrintgcapplicationconcurrentTime | -Xlog: Safepoint | Notez que printgcapplicationconcurrentTime et printgcapplicationstoppedTime sont enregistrés sur la même balise et ne sont pas séparés dans la nouvelle journalisation. |
| Printgcapplicationstoppedtime | -Xlog: Safepoint | Notez que printgcapplicationconcurrentTime et printgcapplicationstoppedTime sont enregistrés sur la même balise et non séparés dans la nouvelle journalisation. |
| Printgccause | Non applicable | La cause GC est maintenant toujours enregistrée. |
| Printgcdatestamps | Non applicable | Les timbres de date sont enregistrés par le cadre. |
| Printgcdetails | -Xlog: gc * | Non applicable |
| Printgcid | Non applicable | L'ID GC est maintenant toujours enregistré. |
| Printgctasktimestamps | -Xlog: tâche * = débogage | Non applicable |
| Imprimgctimestamps | Non applicable | Les horodatages sont enregistrés par le cadre. |
| PrintheapatGC | -Xlog: gc + tas = trace | Non applicable |
| Primordefregc | -Xlog: ref * = débogage | Notez que dans l'ancienne journalisation, PrintreferenceGC n'a eu un effet que si printgcdetails a également été activé. |
| PrintStringDeduplicationStatistics | -Xlog: StringDedup * = débogage | Non applicable |
| PrinttenuringDistribution | -Xlog: âge * = niveau | Utilisez un niveau de débogage pour les informations les plus pertinentes, ou un niveau de trace pour tout ce qui a été enregistré pour PrinttenuringDistribution. |
| Usegclogfilerotation | Non applicable | Ce qui a été enregistré pour PrinttenuringDistribution. |
Migration des paramètres d'exécution hérité
| Drapeau d'exécution hérité | Configuration Xlog | Commentaire |
|---|---|---|
| TraceExceptions | -Xlog: exceptions = info | Non applicable |
| Traceclassloading | -Xlog: classe + charge = niveau | Utilisez le niveau = info pour des informations régulières, ou niveau = débogage pour des informations supplémentaires. Dans Unified Logging Syntax, -Verbose: Class est égal à -xlog: class + charge = info, class + unload = info. |
| TraceClassloadingPreorder | -Xlog: classe + précommande = débogage | Non applicable |
| TraceclassUnloading | -Xlog: classe + un chargement = niveau | Utilisez le niveau = info pour des informations régulières, ou niveau = trace pour des informations supplémentaires. Dans Unified Logging Syntax, -Verbose: Class est égal à -xlog: class + charge = info, class + unload = info. |
| Verbeux | -Xlog: vérification = info | Non applicable |
| Traceclasspaths | -Xlog: classe + path = info | Non applicable |
| Traceclassresolution | -Xlog: classe + résolution = débogage | Non applicable |
| Traceclassinitialisation | -Xlog: classe + init = info = | Non applicable |
| Contraintes de traceloaders | -Xlog: classe + chargeur + contraintes = info | Non applicable |
| Traceclassloaderdata | -Xlog: classe + chargeur + données = niveau | Utilisez le niveau = débogage pour des informations régulières ou le niveau = trace pour des informations supplémentaires. |
| TraceSaFepointCleanuptime | -Xlog: Safepoint + Cleanup = info | Non applicable |
| TraceSafePoint | -Xlog: safepoint = débogue | Non applicable |
| Tracemitorineflation | -Xlog: MonitorInflation = Debug | Non applicable |
| Tracebiased blocking | -Xlog: BiiasEdLocking = NIVEAU | Utilisez le niveau = info pour des informations régulières, ou niveau = trace pour des informations supplémentaires. |
| Traceredfeclasses | -Xlog: redéfinir + classe * = niveau | Niveau = info, = Debug et = Trace fournit des quantités croissantes d'informations. |
Java9 unifie également la sélection et la sortie de GC se connecter à Xlog et peut être migré en fonction du tableau de migration donné par le fonctionnaire.