src/java.base/share/man/java.1
author jjg
Fri, 31 May 2019 17:27:28 -0700
changeset 55140 d4890c3721be
parent 55080 ef713640430e
child 55666 340d73f42b3c
permissions -rw-r--r--
8225134: Update man-page files Reviewed-by: erikj, mchung
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
     1
.\"t
55080
ef713640430e 8224763: Update man pages to show deprecation of -Xverify:none
hseigel
parents: 55000
diff changeset
     2
.\" Copyright (c) 1994, 2019, Oracle and/or its affiliates. All rights reserved.
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
     3
.\" DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
     4
.\"
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
     5
.\" This code is free software; you can redistribute it and/or modify it
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
     6
.\" under the terms of the GNU General Public License version 2 only, as
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
     7
.\" published by the Free Software Foundation.
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
     8
.\"
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
     9
.\" This code is distributed in the hope that it will be useful, but WITHOUT
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
    10
.\" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
    11
.\" FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
    12
.\" version 2 for more details (a copy is included in the LICENSE file that
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
    13
.\" accompanied this code).
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
    14
.\"
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
    15
.\" You should have received a copy of the GNU General Public License version
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
    16
.\" 2 along with this work; if not, write to the Free Software Foundation,
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
    17
.\" Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
    18
.\"
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
    19
.\" Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
    20
.\" or visit www.oracle.com if you need additional information or have any
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
    21
.\" questions.
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
    22
.\"
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    23
.\" Automatically generated by Pandoc 2.3.1
21743
3d979da7bdf0 8029043: Update nroff files for JDK 8
rgallard
parents: 14342
diff changeset
    24
.\"
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    25
.TH "JAVA" "1" "2019" "JDK 13" "JDK Commands"
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    26
.hy
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    27
.SH NAME
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    28
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    29
java \- launch a Java application
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    30
.SH SYNOPSIS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    31
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    32
To launch a class file:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    33
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    34
\f[CB]java\f[R] [\f[I]options\f[R]] \f[I]mainclass\f[R] [\f[I]args\f[R] ...]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    35
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    36
To launch the main class in a JAR file:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    37
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    38
\f[CB]java\f[R] [\f[I]options\f[R]] \f[CB]\-jar\f[R] \f[I]jarfile\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    39
[\f[I]args\f[R] ...]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    40
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    41
To launch the main class in a module:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    42
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    43
\f[CB]java\f[R] [\f[I]options\f[R]] \f[CB]\-m\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    44
\f[I]module\f[R][\f[CB]/\f[R]\f[I]mainclass\f[R]] [\f[I]args\f[R] ...]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    45
.PP
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
    46
or
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    47
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    48
\f[CB]java\f[R] [\f[I]options\f[R]] \f[CB]\-\-module\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    49
\f[I]module\f[R][\f[CB]/\f[R]\f[I]mainclass\f[R]] [\f[I]args\f[R] ...]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    50
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    51
To launch a single source\-file program:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    52
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    53
\f[CB]java\f[R] [\f[I]options\f[R]] \f[I]source\-file\f[R] [\f[I]args\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    54
\&...]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    55
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    56
.B \f[I]options\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    57
Optional: Specifies command\-line options separated by spaces.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    58
See \f[B]Overview of Java Options\f[R] for a description of available
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    59
options.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    60
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    61
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    62
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    63
.B \f[I]mainclass\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    64
Specifies the name of the class to be launched.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    65
Command\-line entries following \f[CB]classname\f[R] are the arguments for
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    66
the main method.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    67
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    68
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    69
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    70
.B \f[CB]\-jar\f[R] \f[I]jarfile\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    71
Executes a program encapsulated in a JAR file.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    72
The \f[I]jarfile\f[R] argument is the name of a JAR file with a manifest
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    73
that contains a line in the form \f[CB]Main\-Class:\f[R]\f[I]classname\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    74
that defines the class with the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    75
\f[CB]public\ static\ void\ main(String[]\ args)\f[R] method that serves
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    76
as your application\[aq]s starting point.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    77
When you use \f[CB]\-jar\f[R], the specified JAR file is the source of all
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    78
user classes, and other class path settings are ignored.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    79
If you\[aq]re using JAR files, then see \f[B]jar\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    80
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    81
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    82
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    83
.B \f[CB]\-m\f[R] or \f[CB]\-\-module\f[R] \f[I]module\f[R][\f[CB]/\f[R]\f[I]mainclass\f[R]]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    84
Executes the main class in a module specified by \f[I]mainclass\f[R] if
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    85
it is given, or, if it is not given, the value in the \f[I]module\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    86
In other words, \f[I]mainclass\f[R] can be used when it is not specified
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    87
by the module, or to override the value when it is specified.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    88
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    89
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    90
See \f[B]Standard Options for Java\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    91
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    92
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    93
.B \f[I]source\-file\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    94
Only used to launch a single source\-file program.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    95
Specifies the source file that contains the main class when using
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    96
source\-file mode.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    97
See \f[B]Using Source\-File Mode to Launch Single\-File Source\-Code
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    98
Programs\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
    99
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   100
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   101
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   102
.B \f[I]args\f[R] ...
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   103
Optional: Arguments following \f[I]mainclass\f[R], \f[I]source\-file\f[R],
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   104
\f[CB]\-jar\f[R] \f[I]jarfile\f[R], and \f[CB]\-m\f[R] or \f[CB]\-\-module\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   105
\f[I]module\f[R]\f[CB]/\f[R]\f[I]mainclass\f[R] are passed as arguments to
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   106
the main class.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   107
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   108
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   109
.SH DESCRIPTION
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   110
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   111
The \f[CB]java\f[R] command starts a Java application.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   112
It does this by starting the Java Runtime Environment (JRE), loading the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   113
specified class, and calling that class\[aq]s \f[CB]main()\f[R] method.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   114
The method must be declared \f[CB]public\f[R] and \f[CB]static\f[R], it must
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   115
not return any value, and it must accept a \f[CB]String\f[R] array as a
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   116
parameter.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   117
The method declaration has the following form:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   118
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   119
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   120
\f[CB]public\ static\ void\ main(String[]\ args)\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   121
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   122
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   123
In source\-file mode, the \f[CB]java\f[R] command can launch a class
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   124
declared in a source file.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   125
See \f[B]Using Source\-File Mode to Launch Single\-File Source\-Code
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   126
Programs\f[R] for a description of using the source\-file mode.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   127
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   128
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   129
\f[B]Note:\f[R] You can use the \f[CB]JDK_JAVA_OPTIONS\f[R] launcher
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   130
environment variable to prepend its content to the actual command line
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   131
of the \f[CB]java\f[R] launcher.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   132
See \f[B]Using the JDK_JAVA_OPTIONS Launcher Environment Variable\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   133
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   134
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   135
By default, the first argument that isn\[aq]t an option of the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   136
\f[CB]java\f[R] command is the fully qualified name of the class to be
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   137
called.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   138
If \f[CB]\-jar\f[R] is specified, then its argument is the name of the JAR
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   139
file containing class and resource files for the application.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   140
The startup class must be indicated by the \f[CB]Main\-Class\f[R] manifest
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   141
header in its manifest file.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   142
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   143
Arguments after the class file name or the JAR file name are passed to
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   144
the \f[CB]main()\f[R] method.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   145
.SS \f[CB]javaw\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   146
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   147
\f[B]Windows:\f[R] The \f[CB]javaw\f[R] command is identical to
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   148
\f[CB]java\f[R], except that with \f[CB]javaw\f[R] there\[aq]s no associated
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   149
console window.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   150
Use \f[CB]javaw\f[R] when you don\[aq]t want a command prompt window to
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   151
appear.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   152
The \f[CB]javaw\f[R] launcher will, however, display a dialog box with
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   153
error information if a launch fails.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   154
.SH USING SOURCE\-FILE MODE TO LAUNCH SINGLE\-FILE SOURCE\-CODE PROGRAMS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   155
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   156
To launch a class declared in a source file, run the \f[CB]java\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   157
launcher in source\-file mode.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   158
Entering source\-file mode is determined by two items on the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   159
\f[CB]java\f[R] command line:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   160
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   161
The first item on the command line that is not an option or part of an
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   162
option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   163
In other words, the item in the command line that would otherwise be the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   164
main class name.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   165
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   166
The \f[CB]\-\-source\f[R] \f[I]version\f[R] option, if present.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   167
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   168
If the class identifies an existing file that has a \f[CB]\&.java\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   169
extension, or if the \f[CB]\-\-source\f[R] option is specified, then
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   170
source\-file mode is selected.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   171
The source file is then compiled and run.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   172
The \f[CB]\-\-source\f[R] option can be used to specify the source
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   173
\f[I]version\f[R] or \f[I]N\f[R] of the source code.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   174
This determines the API that can be used.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   175
When you set \f[CB]\-\-source\f[R] \f[I]N\f[R], you can only use the public
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   176
API that was defined in JDK \f[I]N\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   177
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   178
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   179
\f[B]Note:\f[R] The valid values of \f[I]N\f[R] change for each release,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   180
with new values added and old values removed.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   181
You\[aq]ll get an error message if you use a value of \f[I]N\f[R] that is
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   182
no longer supported.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   183
Supported values of \f[I]N\f[R] for this release are \f[CB]7\f[R],
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   184
\f[CB]8\f[R], \f[CB]9\f[R], \f[CB]10\f[R], \f[CB]11\f[R], \f[CB]12\f[R], and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   185
\f[CB]13\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   186
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   187
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   188
If the file does not have the \f[CB]\&.java\f[R] extension, the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   189
\f[CB]\-\-source\f[R] option must be used to tell the \f[CB]java\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   190
command to use the source\-file mode.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   191
The \f[CB]\-\-source\f[R] option is used for cases when the source file is
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   192
a "script" to be executed and the name of the source file does not
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   193
follow the normal naming conventions for Java source files.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   194
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   195
In source\-file mode, the effect is as though the source file is
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   196
compiled into memory, and the first class found in the source file is
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   197
executed.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   198
Any arguments placed after the name of the source file in the original
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   199
command line are passed to the compiled class when it is executed.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   200
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   201
For example, if a file were named \f[CB]HelloWorld.java\f[R] and contained
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   202
a class named \f[CB]hello.World\f[R], then the source\-file mode command
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   203
to launch the class would be:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   204
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   205
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   206
\f[CB]java\ HelloWorld.java\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   207
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   208
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   209
The example illustrates that the class can be in a named package, and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   210
does not need to be in the unnamed package.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   211
This use of source\-file mode is informally equivalent to using the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   212
following two commands where \f[CB]hello.World\f[R] is the name of the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   213
class in the package:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   214
.IP
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
   215
.nf
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   216
\f[CB]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   217
javac\ \-d\ <memory>\ HelloWorld.java
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   218
java\ \-cp\ <memory>\ hello.World
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   219
\f[R]
21743
3d979da7bdf0 8029043: Update nroff files for JDK 8
rgallard
parents: 14342
diff changeset
   220
.fi
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   221
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   222
\f[B]In source\-file mode, any additional command\-line options are
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   223
processed as follows:\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   224
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   225
The launcher scans the options specified before the source file for any
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   226
that are relevant in order to compile the source file.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   227
.RS 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   228
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   229
This includes: \f[CB]\-\-class\-path\f[R], \f[CB]\-\-module\-path\f[R],
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   230
\f[CB]\-\-add\-exports\f[R], \f[CB]\-\-add\-modules\f[R],
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   231
\f[CB]\-\-limit\-modules\f[R], \f[CB]\-\-patch\-module\f[R],
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   232
\f[CB]\-\-upgrade\-module\-path\f[R], and any variant forms of those
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   233
options.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   234
It also includes the new \f[CB]\-\-enable\-preview\f[R] option, described
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   235
in JEP 12.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   236
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   237
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   238
No provision is made to pass any additional options to the compiler,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   239
such as \f[CB]\-processor\f[R] or \f[CB]\-Werror\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   240
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   241
Command\-line argument files (\f[CB]\@\f[R]\-files) may be used in the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   242
standard way.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   243
Long lists of arguments for either the VM or the program being invoked
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   244
may be placed in files specified on the command\-line by prefixing the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   245
filename with an \f[CB]\@\f[R] character.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   246
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   247
\f[B]In source\-file mode, compilation proceeds as follows:\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   248
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   249
Any command\-line options that are relevant to the compilation
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   250
environment are taken into account.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   251
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   252
No other source files are found and compiled, as if the source path is
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   253
set to an empty value.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   254
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   255
Annotation processing is disabled, as if \f[CB]\-proc:none\f[R] is in
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   256
effect.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   257
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   258
If a version is specified, via the \f[CB]\-\-source\f[R] option, the value
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   259
is used as the argument for an implicit \f[CB]\-\-release\f[R] option for
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   260
the compilation.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   261
This sets both the source version accepted by compiler and the system
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   262
API that may be used by the code in the source file.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   263
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   264
The source file is compiled in the context of an unnamed module.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   265
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   266
The source file should contain one or more top\-level classes, the first
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   267
of which is taken as the class to be executed.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   268
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   269
The compiler does not enforce the optional restriction defined at the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   270
end of JLS §7.6, that a type in a named package should exist in a file
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   271
whose name is composed from the type name followed by the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   272
\f[CB]\&.java\f[R] extension.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   273
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   274
If the source file contains errors, appropriate error messages are
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   275
written to the standard error stream, and the launcher exits with a
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   276
non\-zero exit code.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   277
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   278
\f[B]In source\-file mode, execution proceeds as follows:\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   279
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   280
The class to be executed is the first top\-level class found in the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   281
source file.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   282
It must contain a declaration of the standard
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   283
\f[CB]public\ static\ void\ main(String[])\f[R] method.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   284
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   285
The compiled classes are loaded by a custom class loader, that delegates
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   286
to the application class loader.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   287
This implies that classes appearing on the application class path cannot
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   288
refer to any classes declared in the source file.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   289
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   290
The compiled classes are executed in the context of an unnamed module,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   291
as though \f[CB]\-\-add\-modules=ALL\-DEFAULT\f[R] is in effect.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   292
This is in addition to any other \f[CB]\-\-add\-module\f[R] options that
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   293
may be have been specified on the command line.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   294
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   295
Any arguments appearing after the name of the file on the command line
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   296
are passed to the standard main method in the obvious way.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   297
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   298
It is an error if there is a class on the application class path whose
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   299
name is the same as that of the class to be executed.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   300
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   301
See \f[B]JEP 330: Launch Single\-File Source\-Code Programs\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   302
[http://openjdk.java.net/jeps/330] for complete details.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   303
.SH USING THE JDK_JAVA_OPTIONS LAUNCHER ENVIRONMENT VARIABLE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   304
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   305
\f[CB]JDK_JAVA_OPTIONS\f[R] prepends its content to the options parsed
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   306
from the command line.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   307
The content of the \f[CB]JDK_JAVA_OPTIONS\f[R] environment variable is a
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   308
list of arguments separated by white\-space characters (as determined by
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   309
\f[CB]isspace()\f[R]).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   310
These are prepended to the command line arguments passed to
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   311
\f[CB]java\f[R] launcher.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   312
The encoding requirement for the environment variable is the same as the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   313
\f[CB]java\f[R] command line on the system.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   314
\f[CB]JDK_JAVA_OPTIONS\f[R] environment variable content is treated in the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   315
same manner as that specified in the command line.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   316
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   317
Single (\f[CB]\[aq]\f[R]) or double (\f[CB]"\f[R]) quotes can be used to
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   318
enclose arguments that\ contain whitespace characters.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   319
All content between the open quote and the first matching close quote
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   320
are preserved by simply removing the pair of quotes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   321
In case a matching quote is not found, the launcher will abort with an
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   322
error message.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   323
\f[CB]\@\f[R]\-files are supported as they are specified in the command
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   324
line.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   325
However, as in \f[CB]\@\f[R]\-files, use of a wildcard is not supported.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   326
In order to mitigate potential misuse of \f[CB]JDK_JAVA_OPTIONS\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   327
behavior, options that specify the main class (such as \f[CB]\-jar\f[R])
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   328
or cause the \f[CB]java\f[R] launcher to exit without executing the main
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   329
class (such as \f[CB]\-h\f[R]) are disallowed in the environment variable.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   330
If any of these options appear in the environment variable, the launcher
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   331
will abort with an error message.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   332
When \f[CB]JDK_JAVA_OPTIONS\f[R] is set, the launcher prints a message to
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   333
stderr as a reminder.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   334
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   335
\f[B]Example:\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   336
.IP
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
   337
.nf
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   338
\f[CB]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   339
$\ export\ JDK_JAVA_OPTIONS=\[aq]\-g\ \@file1\ \-Dprop=value\ \@file2\ \-Dws.prop="white\ spaces"\[aq]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   340
$\ java\ \-Xint\ \@file3
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   341
\f[R]
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
   342
.fi
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   343
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   344
is equivalent to the command line:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   345
.IP
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
   346
.nf
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   347
\f[CB]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   348
java\ \-g\ \@file1\ \-Dprop=value\ \@file2\ \-Dws.prop="white\ spaces"\ \-Xint\ \@file3
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   349
\f[R]
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
   350
.fi
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   351
.SH OVERVIEW OF JAVA OPTIONS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   352
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   353
The \f[CB]java\f[R] command supports a wide range of options in the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   354
following categories:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   355
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   356
\f[B]Standard Options for Java\f[R]: Options guaranteed to be supported
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   357
by all implementations of the Java Virtual Machine (JVM).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   358
They\[aq]re used for common actions, such as checking the version of the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   359
JRE, setting the class path, enabling verbose output, and so on.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   360
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   361
\f[B]Extra Options for Java\f[R]: General purpose options that are
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   362
specific to the Java HotSpot Virtual Machine.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   363
They aren\[aq]t guaranteed to be supported by all JVM implementations,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   364
and are subject to change.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   365
These options start with \f[CB]\-X\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   366
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   367
The advanced options aren\[aq]t recommended for casual use.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   368
These are developer options used for tuning specific areas of the Java
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   369
HotSpot Virtual Machine operation that often have specific system
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   370
requirements and may require privileged access to system configuration
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   371
parameters.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   372
Several examples of performance tuning are provided in \f[B]Performance
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   373
Tuning Examples\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   374
These options aren\[aq]t guaranteed to be supported by all JVM
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   375
implementations and are subject to change.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   376
Advanced options start with \f[CB]\-XX\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   377
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   378
\f[B]Advanced Runtime Options for Java\f[R]: Control the runtime behavior
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   379
of the Java HotSpot VM.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   380
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   381
\f[B]Advanced JIT Compiler Options for java\f[R]: Control the dynamic
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   382
just\-in\-time (JIT) compilation performed by the Java HotSpot VM.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   383
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   384
\f[B]Advanced Serviceability Options for Java\f[R]: Enable gathering
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   385
system information and performing extensive debugging.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   386
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   387
\f[B]Advanced Garbage Collection Options for Java\f[R]: Control how
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   388
garbage collection (GC) is performed by the Java HotSpot
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   389
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   390
Boolean options are used to either enable a feature that\[aq]s disabled
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   391
by default or disable a feature that\[aq]s enabled by default.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   392
Such options don\[aq]t require a parameter.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   393
Boolean \f[CB]\-XX\f[R] options are enabled using the plus sign
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   394
(\f[CB]\-XX:+\f[R]\f[I]OptionName\f[R]) and disabled using the minus sign
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   395
(\f[CB]\-XX:\-\f[R]\f[I]OptionName\f[R]).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   396
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   397
For options that require an argument, the argument may be separated from
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   398
the option name by a space, a colon (:), or an equal sign (=), or the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   399
argument may directly follow the option (the exact syntax differs for
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   400
each option).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   401
If you\[aq]re expected to specify the size in bytes, then you can use no
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   402
suffix, or use the suffix \f[CB]k\f[R] or \f[CB]K\f[R] for kilobytes (KB),
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   403
\f[CB]m\f[R] or \f[CB]M\f[R] for megabytes (MB), or \f[CB]g\f[R] or \f[CB]G\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   404
for gigabytes (GB).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   405
For example, to set the size to 8 GB, you can specify either
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   406
\f[CB]8g\f[R], \f[CB]8192m\f[R], \f[CB]8388608k\f[R], or \f[CB]8589934592\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   407
as the argument.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   408
If you are expected to specify the percentage, then use a number from 0
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   409
to 1.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   410
For example, specify \f[CB]0.25\f[R] for 25%.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   411
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   412
The following sections describe the options that are obsolete,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   413
deprecated, and removed:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   414
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   415
\f[B]Deprecated Java Options\f[R]: Accepted and acted upon \-\-\- a
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   416
warning is issued when they\[aq]re used.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   417
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   418
\f[B]Obsolete Java Options\f[R]: Accepted but ignored \-\-\- a warning is
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   419
issued when they\[aq]re used.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   420
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   421
\f[B]Removed Java Options\f[R]: Removed \-\-\- using them results in an
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   422
error.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   423
.SH STANDARD OPTIONS FOR JAVA
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   424
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   425
These are the most commonly used options supported by all
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   426
implementations of the JVM.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   427
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   428
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   429
\f[B]Note:\f[R] To specify an argument for a long option, you can use
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   430
either \f[CB]\-\-\f[R]\f[I]name\f[R]\f[CB]=\f[R]\f[I]value\f[R] or
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   431
\f[CB]\-\-\f[R]\f[I]name\f[R] \f[I]value\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   432
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   433
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   434
.B \f[CB]\-agentlib:\f[R]\f[I]libname\f[R][\f[CB]=\f[R]\f[I]options\f[R]]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   435
Loads the specified native agent library.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   436
After the library name, a comma\-separated list of options specific to
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   437
the library can be used.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   438
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   439
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   440
\f[B]Oracle Solaris, Linux, and macOS:\f[R] If the option
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   441
\f[CB]\-agentlib:foo\f[R] is specified, then the JVM attempts to load the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   442
library named \f[CB]libfoo.so\f[R] in the location specified by the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   443
\f[CB]LD_LIBRARY_PATH\f[R] system variable (on macOS this variable is
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   444
\f[CB]DYLD_LIBRARY_PATH\f[R]).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   445
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   446
\f[B]Windows:\f[R] If the option \f[CB]\-agentlib:foo\f[R] is specified,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   447
then the JVM attempts to load the library named \f[CB]foo.dll\f[R] in the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   448
location specified by the \f[CB]PATH\f[R] system variable.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   449
.RS 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   450
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   451
The following example shows how to load the Java Debug Wire Protocol
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   452
(JDWP) library and listen for the socket connection on port 8000,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   453
suspending the JVM before the main class loads:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   454
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   455
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   456
\f[CB]\-agentlib:jdwp=transport=dt_socket,server=y,address=8000\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   457
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   458
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   459
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   460
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   461
.B \f[CB]\-agentpath:\f[R]\f[I]pathname\f[R][\f[CB]=\f[R]\f[I]options\f[R]]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   462
Loads the native agent library specified by the absolute path name.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   463
This option is equivalent to \f[CB]\-agentlib\f[R] but uses the full path
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   464
and file name of the library.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   465
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   466
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   467
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   468
.B \f[CB]\-\-class\-path\f[R] \f[I]classpath\f[R], \f[CB]\-classpath\f[R] \f[I]classpath\f[R], or \f[CB]\-cp\f[R] \f[I]classpath\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   469
A semicolon (\f[CB];\f[R]) separated list of directories, JAR archives,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   470
and ZIP archives to search for class files.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   471
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   472
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   473
Specifying \f[I]classpath\f[R] overrides any setting of the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   474
\f[CB]CLASSPATH\f[R] environment variable.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   475
If the class path option isn\[aq]t used and \f[I]classpath\f[R] isn\[aq]t
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   476
set, then the user class path consists of the current directory (.).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   477
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   478
As a special convenience, a class path element that contains a base name
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   479
of an asterisk (*) is considered equivalent to specifying a list of all
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   480
the files in the directory with the extension \f[CB]\&.jar\f[R] or
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   481
\f[CB]\&.JAR\f[R] .
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   482
A Java program can\[aq]t tell the difference between the two
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   483
invocations.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   484
For example, if the directory mydir contains \f[CB]a.jar\f[R] and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   485
\f[CB]b.JAR\f[R], then the class path element mydir/* is expanded to
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   486
\f[CB]A.jar:b.JAR\f[R], except that the order of JAR files is unspecified.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   487
All \f[CB]\&.jar\f[R] files in the specified directory, even hidden ones,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   488
are included in the list.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   489
A class path entry consisting of an asterisk (*) expands to a list of
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   490
all the jar files in the current directory.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   491
The \f[CB]CLASSPATH\f[R] environment variable, where defined, is similarly
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   492
expanded.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   493
Any class path wildcard expansion that occurs before the Java VM is
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   494
started.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   495
Java programs never see wildcards that aren\[aq]t expanded except by
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   496
querying the environment, such as by calling
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   497
\f[CB]System.getenv("CLASSPATH")\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   498
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   499
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   500
.B \f[CB]\-\-disable\-\@files\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   501
Can be used anywhere on the command line, including in an argument file,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   502
to prevent further \f[CB]\@filename\f[R] expansion.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   503
This option stops expanding \f[CB]\@\f[R]\-argfiles after the option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   504
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   505
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   506
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   507
.B \f[CB]\-\-enable\-preview\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   508
Allows classes to depend on \f[B]preview features\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   509
[https://docs.oracle.com/en/java/javase/12/language/index.html#JSLAN\-GUID\-5A82FE0E\-0CA4\-4F1F\-B075\-564874FE2823]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   510
of the release.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   511
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   512
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   513
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   514
.B \f[CB]\-\-module\-path\f[R] \f[I]modulepath\f[R]... or \f[CB]\-p\f[R] \f[I]modulepath\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   515
A semicolon (\f[CB];\f[R]) separated list of directories in which each
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   516
directory is a directory of modules.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   517
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   518
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   519
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   520
.B \f[CB]\-\-upgrade\-module\-path\f[R] \f[I]modulepath\f[R]...
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   521
A semicolon (\f[CB];\f[R]) separated list of directories in which each
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   522
directory is a directory of modules that replace upgradeable modules in
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   523
the runtime image.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   524
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   525
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   526
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   527
.B \f[CB]\-\-add\-modules\f[R] \f[I]module\f[R][\f[CB],\f[R]\f[I]module\f[R]...]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   528
Specifies the root modules to resolve in addition to the initial module.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   529
\f[I]module\f[R] also can be \f[CB]ALL\-DEFAULT\f[R], \f[CB]ALL\-SYSTEM\f[R],
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   530
and \f[CB]ALL\-MODULE\-PATH\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   531
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   532
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   533
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   534
.B \f[CB]\-\-list\-modules\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   535
Lists the observable modules and then exits.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   536
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   537
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   538
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   539
.B \f[CB]\-d\f[R] \f[I]module_name\f[R] or \f[CB]\-\-describe\-module\f[R] \f[I]module_name\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   540
Describes a specified module and then exits.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   541
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   542
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   543
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   544
.B \f[CB]\-\-dry\-run\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   545
Creates the VM but doesn\[aq]t execute the main method.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   546
This \f[CB]\-\-dry\-run\f[R] option might be useful for validating the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   547
command\-line options such as the module system configuration.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   548
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   549
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   550
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   551
.B \f[CB]\-\-validate\-modules\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   552
Validates all modules and exit.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   553
This option is helpful for finding conflicts and other errors with
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   554
modules on the module path.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   555
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   556
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   557
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   558
.B \f[CB]\-D\f[R]\f[I]property\f[R]\f[CB]=\f[R]\f[I]value\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   559
Sets a system property value.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   560
The \f[I]property\f[R] variable is a string with no spaces that
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   561
represents the name of the property.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   562
The \f[I]value\f[R] variable is a string that represents the value of the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   563
property.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   564
If \f[I]value\f[R] is a string with spaces, then enclose it in quotation
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   565
marks (for example \f[CB]\-Dfoo="foo\ bar"\f[R]).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   566
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   567
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   568
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   569
.B \f[CB]\-disableassertions\f[R][\f[CB]:\f[R][\f[I]packagename\f[R]]...|\f[CB]:\f[R]\f[I]classname\f[R]] or \f[CB]\-da\\[\f[R]:\f[CB]\\[*packagename*\\]...|\f[R]:`\f[I]classname\f[R]]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   570
Disables assertions.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   571
By default, assertions are disabled in all packages and classes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   572
With no arguments, \f[CB]\-disableassertions\f[R] (\f[CB]\-da\f[R]) disables
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   573
assertions in all packages and classes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   574
With the \f[I]packagename\f[R] argument ending in \f[CB]\&...\f[R], the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   575
switch disables assertions in the specified package and any subpackages.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   576
If the argument is simply \f[CB]\&...\f[R], then the switch disables
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   577
assertions in the unnamed package in the current working directory.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   578
With the \f[I]classname\f[R] argument, the switch disables assertions in
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   579
the specified class.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   580
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   581
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   582
The \f[CB]\-disableassertions\f[R] (\f[CB]\-da\f[R]) option applies to all
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   583
class loaders and to system classes (which don\[aq]t have a class
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   584
loader).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   585
There\[aq]s one exception to this rule: If the option is provided with
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   586
no arguments, then it doesn\[aq]t apply to system classes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   587
This makes it easy to disable assertions in all classes except for
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   588
system classes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   589
The \f[CB]\-disablesystemassertions\f[R] option enables you to disable
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   590
assertions in all system classes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   591
To explicitly enable assertions in specific packages or classes, use the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   592
\f[CB]\-enableassertions\f[R] (\f[CB]\-ea\f[R]) option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   593
Both options can be used at the same time.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   594
For example, to run the \f[CB]MyClass\f[R] application with assertions
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   595
enabled in the package \f[CB]com.wombat.fruitbat\f[R] (and any
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   596
subpackages) but disabled in the class
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   597
\f[CB]com.wombat.fruitbat.Brickbat\f[R], use the following command:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   598
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   599
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   600
\f[CB]java\ \-ea:com.wombat.fruitbat...\ \-da:com.wombat.fruitbat.Brickbat\ MyClass\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   601
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   602
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   603
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   604
.B \f[CB]\-disablesystemassertions\f[R] or \f[CB]\-dsa\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   605
Disables assertions in all system classes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   606
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   607
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   608
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   609
.B \f[CB]\-enableassertions\f[R][\f[CB]:\f[R][\f[I]packagename\f[R]]...|\f[CB]:\f[R]\f[I]classname\f[R]] or \f[CB]\-ea\\[\f[R]:\f[CB]\\[*packagename*\\]...|\f[R]:`\f[I]classname\f[R]]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   610
Enables assertions.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   611
By default, assertions are disabled in all packages and classes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   612
With no arguments, \f[CB]\-enableassertions\f[R] (\f[CB]\-ea\f[R]) enables
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   613
assertions in all packages and classes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   614
With the \f[I]packagename\f[R] argument ending in \f[CB]\&...\f[R], the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   615
switch enables assertions in the specified package and any subpackages.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   616
If the argument is simply \f[CB]\&...\f[R], then the switch enables
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   617
assertions in the unnamed package in the current working directory.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   618
With the \f[I]classname\f[R] argument, the switch enables assertions in
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   619
the specified class.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   620
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   621
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   622
The \f[CB]\-enableassertions\f[R] (\f[CB]\-ea\f[R]) option applies to all
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   623
class loaders and to system classes (which don\[aq]t have a class
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   624
loader).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   625
There\[aq]s one exception to this rule: If the option is provided with
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   626
no arguments, then it doesn\[aq]t apply to system classes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   627
This makes it easy to enable assertions in all classes except for system
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   628
classes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   629
The \f[CB]\-enablesystemassertions\f[R] option provides a separate switch
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   630
to enable assertions in all system classes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   631
To explicitly disable assertions in specific packages or classes, use
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   632
the \f[CB]\-disableassertions\f[R] (\f[CB]\-da\f[R]) option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   633
If a single command contains multiple instances of these switches, then
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   634
they\[aq]re processed in order, before loading any classes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   635
For example, to run the \f[CB]MyClass\f[R] application with assertions
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   636
enabled only in the package \f[CB]com.wombat.fruitbat\f[R] (and any
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   637
subpackages) but disabled in the class
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   638
\f[CB]com.wombat.fruitbat.Brickbat\f[R], use the following command:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   639
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   640
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   641
\f[CB]java\ \-ea:com.wombat.fruitbat...\ \-da:com.wombat.fruitbat.Brickbat\ MyClass\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   642
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   643
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   644
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   645
.B \f[CB]\-enablesystemassertions\f[R] or \f[CB]\-esa\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   646
Enables assertions in all system classes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   647
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   648
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   649
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   650
.B \f[CB]\-help\f[R], \f[CB]\-h\f[R], or \f[CB]\-?\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   651
Prints the help message to the error stream.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   652
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   653
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   654
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   655
.B \f[CB]\-\-help\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   656
Prints the help message to the output stream.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   657
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   658
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   659
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   660
.B \f[CB]\-javaagent:\f[R]\f[I]jarpath\f[R][\f[CB]=\f[R]\f[I]options\f[R]]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   661
Loads the specified Java programming language agent.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   662
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   663
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   664
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   665
.B \f[CB]\-\-show\-version\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   666
Prints the product version to the output stream and continues.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   667
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   668
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   669
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   670
.B \f[CB]\-showversion\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   671
Prints the product version to the error stream and continues.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   672
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   673
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   674
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   675
.B \f[CB]\-\-show\-module\-resolution\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   676
Shows module resolution output during startup.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   677
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   678
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   679
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   680
.B \f[CB]\-splash:\f[R]\f[I]imagepath\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   681
Shows the splash screen with the image specified by \f[I]imagepath\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   682
HiDPI scaled images are automatically supported and used if available.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   683
The unscaled image file name, such as \f[CB]image.ext\f[R], should always
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   684
be passed as the argument to the \f[CB]\-splash\f[R] option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   685
The most appropriate scaled image provided is picked up automatically.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   686
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   687
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   688
For example, to show the \f[CB]splash.gif\f[R] file from the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   689
\f[CB]images\f[R] directory when starting your application, use the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   690
following option:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   691
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   692
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   693
\f[CB]\-splash:images/splash.gif\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   694
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   695
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   696
See the SplashScreen API documentation for more information.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   697
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   698
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   699
.B \f[CB]\-verbose:class\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   700
Displays information about each loaded class.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   701
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   702
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   703
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   704
.B \f[CB]\-verbose:gc\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   705
Displays information about each garbage collection (GC) event.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   706
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   707
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   708
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   709
.B \f[CB]\-verbose:jni\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   710
Displays information about the use of native methods and other Java
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   711
Native Interface (JNI) activity.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   712
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   713
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   714
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   715
.B \f[CB]\-verbose:module\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   716
Displays information about the modules in use.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   717
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   718
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   719
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   720
.B \f[CB]\-\-version\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   721
Prints product version to the error stream and exits.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   722
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   723
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   724
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   725
.B \f[CB]\-version\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   726
Prints product version to the output stream and exits.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   727
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   728
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   729
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   730
.B \f[CB]\-X\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   731
Prints the help on extra options to the error stream.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   732
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   733
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   734
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   735
.B \f[CB]\-\-help\-extra\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   736
Prints the help on extra options to the output stream.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   737
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   738
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   739
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   740
.B \f[CB]\@\f[R]\f[I]argfile\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   741
Specifies one or more argument files prefixed by \f[CB]\@\f[R] used by the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   742
\f[CB]java\f[R] command.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   743
It isn\[aq]t uncommon for the \f[CB]java\f[R] command line to be very long
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   744
because of the \f[CB]\&.jar\f[R] files needed in the classpath.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   745
The \f[CB]\@\f[R]\f[I]argfile\f[R] option overcomes command\-line length
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   746
limitations by enabling the launcher to expand the contents of argument
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   747
files after shell expansion, but before argument processing.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   748
Contents in the argument files are expanded because otherwise, they
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   749
would be specified on the command line until the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   750
\f[CB]\-Xdisable\-\@files\f[R] option was encountered.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   751
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   752
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   753
The argument files can also contain the main class name and all options.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   754
If an argument file contains all of the options required by the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   755
\f[CB]java\f[R] command, then the command line could simply be:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   756
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   757
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   758
\f[CB]java\ \@\f[R]\f[I]argfile\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   759
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   760
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   761
See \f[B]java Command\-Line Argument Files\f[R] for a description and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   762
examples of using \f[CB]\@\f[R]\-argfiles.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   763
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   764
.SH EXTRA OPTIONS FOR JAVA
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   765
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   766
The following \f[CB]java\f[R] options are general purpose options that are
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   767
specific to the Java HotSpot Virtual Machine.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   768
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   769
.B \f[CB]\-Xbatch\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   770
Disables background compilation.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   771
By default, the JVM compiles the method as a background task, running
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   772
the method in interpreter mode until the background compilation is
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   773
finished.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   774
The \f[CB]\-Xbatch\f[R] flag disables background compilation so that
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   775
compilation of all methods proceeds as a foreground task until
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   776
completed.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   777
This option is equivalent to \f[CB]\-XX:\-BackgroundCompilation\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   778
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   779
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   780
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   781
.B \f[CB]\-Xbootclasspath/a:\f[R]\f[I]directories\f[R]|\f[I]zip\f[R]|\f[I]JAR\-files\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   782
Specifies a list of directories, JAR files, and ZIP archives to append
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   783
to the end of the default bootstrap class path.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   784
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   785
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   786
\f[B]Oracle Solaris, Linux, and macOS:\f[R] Colons (\f[CB]:\f[R]) separate
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   787
entities in this list.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   788
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   789
\f[B]Windows:\f[R] Semicolons (\f[CB];\f[R]) separate entities in this
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   790
list.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   791
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   792
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   793
.B \f[CB]\-Xcheck:jni\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   794
Performs additional checks for Java Native Interface (JNI) functions.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   795
Specifically, it validates the parameters passed to the JNI function and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   796
the runtime environment data before processing the JNI request.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   797
It also checks for pending exceptions between JNI calls.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   798
Any invalid data encountered indicates a problem in the native code, and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   799
the JVM terminates with an irrecoverable error in such cases.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   800
Expect a performance degradation when this option is used.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   801
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   802
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   803
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   804
.B \f[CB]\-Xcomp\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   805
Forces compilation of methods on first invocation.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   806
By default, the Client VM (\f[CB]\-client\f[R]) performs 1,000 interpreted
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   807
method invocations and the Server VM (\f[CB]\-server\f[R]) performs 10,000
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   808
interpreted method invocations to gather information for efficient
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   809
compilation.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   810
Specifying the \f[CB]\-Xcomp\f[R] option disables interpreted method
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   811
invocations to increase compilation performance at the expense of
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   812
efficiency.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   813
You can also change the number of interpreted method invocations before
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   814
compilation using the \f[CB]\-XX:CompileThreshold\f[R] option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   815
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   816
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   817
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   818
.B \f[CB]\-Xdebug\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   819
Does nothing.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   820
Provided for backward compatibility.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   821
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   822
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   823
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   824
.B \f[CB]\-Xdiag\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   825
Shows additional diagnostic messages.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   826
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   827
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   828
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   829
.B \f[CB]\-Xint\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   830
Runs the application in interpreted\-only mode.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   831
Compilation to native code is disabled, and all bytecode is executed by
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   832
the interpreter.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   833
The performance benefits offered by the just\-in\-time (JIT) compiler
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   834
aren\[aq]t present in this mode.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   835
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   836
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   837
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   838
.B \f[CB]\-Xinternalversion\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   839
Displays more detailed JVM version information than the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   840
\f[CB]\-version\f[R] option, and then exits.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   841
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   842
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   843
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   844
.B \f[CB]\-Xlog:\f[R]\f[I]option\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   845
Configure or enable logging with the Java Virtual Machine (JVM) unified
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   846
logging framework.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   847
See \f[B]Enable Logging with the JVM Unified Logging Framework\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   848
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   849
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   850
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   851
.B \f[CB]\-Xmixed\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   852
Executes all bytecode by the interpreter except for hot methods, which
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   853
are compiled to native code.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   854
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   855
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   856
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   857
.B \f[CB]\-Xmn\f[R] \f[I]size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   858
Sets the initial and maximum size (in bytes) of the heap for the young
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   859
generation (nursery).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   860
Append the letter \f[CB]k\f[R] or \f[CB]K\f[R] to indicate kilobytes,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   861
\f[CB]m\f[R] or \f[CB]M\f[R] to indicate megabytes, or \f[CB]g\f[R] or
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   862
\f[CB]G\f[R] to indicate gigabytes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   863
The young generation region of the heap is used for new objects.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   864
GC is performed in this region more often than in other regions.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   865
If the size for the young generation is too small, then a lot of minor
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   866
garbage collections are performed.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   867
If the size is too large, then only full garbage collections are
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   868
performed, which can take a long time to complete.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   869
It is recommended that you keep the size for the young generation
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   870
greater than 25% and less than 50% of the overall heap size.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   871
The following examples show how to set the initial and maximum size of
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   872
young generation to 256 MB using various units:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   873
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   874
.IP
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
   875
.nf
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   876
\f[CB]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   877
\-Xmn256m
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   878
\-Xmn262144k
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   879
\-Xmn268435456
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   880
\f[R]
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
   881
.fi
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   882
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   883
Instead of the \f[CB]\-Xmn\f[R] option to set both the initial and maximum
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   884
size of the heap for the young generation, you can use
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   885
\f[CB]\-XX:NewSize\f[R] to set the initial size and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   886
\f[CB]\-XX:MaxNewSize\f[R] to set the maximum size.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   887
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   888
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   889
.B \f[CB]\-Xms\f[R] \f[I]size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   890
Sets the initial size (in bytes) of the heap.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   891
This value must be a multiple of 1024 and greater than 1 MB.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   892
Append the letter \f[CB]k\f[R] or \f[CB]K\f[R] to indicate kilobytes,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   893
\f[CB]m\f[R] or \f[CB]M\f[R] to indicate megabytes, \f[CB]g\f[R] or \f[CB]G\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   894
to indicate gigabytes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   895
The following examples show how to set the size of allocated memory to 6
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   896
MB using various units:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   897
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   898
.IP
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
   899
.nf
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   900
\f[CB]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   901
\-Xms6291456
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   902
\-Xms6144k
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   903
\-Xms6m
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   904
\f[R]
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
   905
.fi
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   906
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   907
If you don\[aq]t set this option, then the initial size is set as the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   908
sum of the sizes allocated for the old generation and the young
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   909
generation.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   910
The initial size of the heap for the young generation can be set using
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   911
the \f[CB]\-Xmn\f[R] option or the \f[CB]\-XX:NewSize\f[R] option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   912
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   913
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   914
.B \f[CB]\-Xmx\f[R] \f[I]size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   915
Specifies the maximum size (in bytes) of the memory allocation pool in
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   916
bytes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   917
This value must be a multiple of 1024 and greater than 2 MB.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   918
Append the letter \f[CB]k\f[R] or \f[CB]K\f[R] to indicate kilobytes,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   919
\f[CB]m\f[R] or \f[CB]M\f[R] to indicate megabytes, or \f[CB]g\f[R] or
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   920
\f[CB]G\f[R] to indicate gigabytes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   921
The default value is chosen at runtime based on system configuration.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   922
For server deployments, \f[CB]\-Xms\f[R] and \f[CB]\-Xmx\f[R] are often set
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   923
to the same value.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   924
The following examples show how to set the maximum allowed size of
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   925
allocated memory to 80 MB using various units:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   926
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   927
.IP
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
   928
.nf
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   929
\f[CB]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   930
\-Xmx83886080
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   931
\-Xmx81920k
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   932
\-Xmx80m
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   933
\f[R]
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
   934
.fi
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   935
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   936
The \f[CB]\-Xmx\f[R] option is equivalent to \f[CB]\-XX:MaxHeapSize\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   937
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   938
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   939
.B \f[CB]\-Xnoclassgc\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   940
Disables garbage collection (GC) of classes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   941
This can save some GC time, which shortens interruptions during the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   942
application run.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   943
When you specify \f[CB]\-Xnoclassgc\f[R] at startup, the class objects in
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   944
the application are left untouched during GC and are always be
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   945
considered live.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   946
This can result in more memory being permanently occupied which, if not
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   947
used carefully, throws an out\-of\-memory exception.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   948
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   949
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   950
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   951
.B \f[CB]\-Xrs\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   952
Reduces the use of operating system signals by the JVM.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   953
Shutdown hooks enable the orderly shutdown of a Java application by
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   954
running user cleanup code (such as closing database connections) at
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   955
shutdown, even if the JVM terminates abruptly.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   956
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   957
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   958
\f[B]Oracle Solaris, Linux, and macOS:\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   959
.RS 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   960
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   961
The JVM catches signals to implement shutdown hooks for unexpected
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   962
termination.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   963
The JVM uses \f[CB]SIGHUP\f[R], \f[CB]SIGINT\f[R], and \f[CB]SIGTERM\f[R] to
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   964
initiate the running of shutdown hooks.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   965
.IP \[bu] 2
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
   966
Applications embedding the JVM frequently need to trap signals such as
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   967
\f[CB]SIGINT\f[R] or \f[CB]SIGTERM\f[R], which can lead to interference with
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   968
the JVM signal handlers.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   969
The \f[CB]\-Xrs\f[R] option is available to address this issue.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   970
When \f[CB]\-Xrs\f[R] is used, the signal masks for \f[CB]SIGINT\f[R],
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   971
\f[CB]SIGTERM\f[R], \f[CB]SIGHUP\f[R], and \f[CB]SIGQUIT\f[R] aren\[aq]t
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   972
changed by the JVM, and signal handlers for these signals aren\[aq]t
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   973
installed.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   974
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   975
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   976
\f[B]Windows:\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   977
.RS 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   978
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   979
The JVM watches for console control events to implement shutdown hooks
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   980
for unexpected termination.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   981
Specifically, the JVM registers a console control handler that begins
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   982
shutdown\-hook processing and returns \f[CB]TRUE\f[R] for
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   983
\f[CB]CTRL_C_EVENT\f[R], \f[CB]CTRL_CLOSE_EVENT\f[R],
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   984
\f[CB]CTRL_LOGOFF_EVENT\f[R], and \f[CB]CTRL_SHUTDOWN_EVENT\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   985
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   986
The JVM uses a similar mechanism to implement the feature of dumping
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   987
thread stacks for debugging purposes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   988
The JVM uses \f[CB]CTRL_BREAK_EVENT\f[R] to perform thread dumps.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   989
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   990
If the JVM is run as a service (for example, as a servlet engine for a
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   991
web server), then it can receive \f[CB]CTRL_LOGOFF_EVENT\f[R] but
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   992
shouldn\[aq]t initiate shutdown because the operating system doesn\[aq]t
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   993
actually terminate the process.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   994
To avoid possible interference such as this, the \f[CB]\-Xrs\f[R] option
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   995
can be used.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   996
When the \f[CB]\-Xrs\f[R] option is used, the JVM doesn\[aq]t install a
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   997
console control handler, implying that it doesn\[aq]t watch for or
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   998
process \f[CB]CTRL_C_EVENT\f[R], \f[CB]CTRL_CLOSE_EVENT\f[R],
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   999
\f[CB]CTRL_LOGOFF_EVENT\f[R], or \f[CB]CTRL_SHUTDOWN_EVENT\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1000
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1001
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1002
There are two consequences of specifying \f[CB]\-Xrs\f[R]:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1003
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1004
\f[B]Oracle Solaris, Linux, and macOS:\f[R] \f[CB]SIGQUIT\f[R] thread dumps
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1005
aren\[aq]t available.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1006
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1007
\f[B]Windows:\f[R] Ctrl + Break thread dumps aren\[aq]t available.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1008
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1009
User code is responsible for causing shutdown hooks to run, for example,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1010
by calling the \f[CB]System.exit()\f[R] when the JVM is to be terminated.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1011
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1012
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1013
.B \f[CB]\-Xshare:\f[R]\f[I]mode\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1014
Sets the class data sharing (CDS) mode.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1015
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1016
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1017
Possible \f[I]mode\f[R] arguments for this option include the following:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1018
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1019
.B \f[CB]auto\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1020
Use shared class data if possible (default).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1021
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1022
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1023
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1024
.B \f[CB]on\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1025
Require using shared class data, otherwise fail.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1026
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1027
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1028
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1029
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1030
\f[B]Note:\f[R] The \f[CB]\-Xshare:on\f[R] option is used for testing
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1031
purposes only and may cause intermittent failures due to the use of
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1032
address space layout randomization by the operation system.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1033
This option should not be used in production environments.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1034
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1035
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1036
.B \f[CB]off\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1037
Do not attempt to use shared class data.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1038
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1039
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1040
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1041
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1042
.B \f[CB]\-XshowSettings\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1043
Shows all settings and then continues.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1044
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1045
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1046
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1047
.B \f[CB]\-XshowSettings:\f[R]\f[I]category\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1048
Shows settings and continues.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1049
Possible \f[I]category\f[R] arguments for this option include the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1050
following:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1051
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1052
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1053
.B \f[CB]all\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1054
Shows all categories of settings.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1055
This is the default value.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1056
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1057
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1058
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1059
.B \f[CB]locale\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1060
Shows settings related to locale.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1061
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1062
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1063
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1064
.B \f[CB]properties\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1065
Shows settings related to system properties.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1066
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1067
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1068
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1069
.B \f[CB]vm\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1070
Shows the settings of the JVM.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1071
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1072
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1073
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1074
.B \f[CB]system\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1075
\f[B]Linux:\f[R] Shows host system or container configuration and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1076
continues.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1077
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1078
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1079
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1080
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1081
.B \f[CB]\-Xss\f[R] \f[I]size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1082
Sets the thread stack size (in bytes).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1083
Append the letter \f[CB]k\f[R] or \f[CB]K\f[R] to indicate KB, \f[CB]m\f[R] or
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1084
\f[CB]M\f[R] to indicate MB, or \f[CB]g\f[R] or \f[CB]G\f[R] to indicate GB.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1085
The default value depends on the platform:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1086
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1087
.IP \[bu] 2
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  1088
Linux/x64 (64\-bit): 1024 KB
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1089
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1090
macOS (64\-bit): 1024 KB
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1091
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1092
Oracle Solaris (64\-bit): 1024 KB
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1093
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1094
Windows: The default value depends on virtual memory
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1095
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1096
The following examples set the thread stack size to 1024 KB in different
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1097
units:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1098
.IP
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  1099
.nf
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1100
\f[CB]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1101
\-Xss1m
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1102
\-Xss1024k
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1103
\-Xss1048576
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1104
\f[R]
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  1105
.fi
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1106
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1107
This option is similar to \f[CB]\-XX:ThreadStackSize\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1108
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1109
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1110
.B \f[CB]\-\-add\-reads\f[R] \f[I]module\f[R]\f[CB]=\f[R]\f[I]target\-module\f[R](\f[CB],\f[R]\f[I]target\-module\f[R])*
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1111
Updates \f[I]module\f[R] to read the \f[I]target\-module\f[R], regardless
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1112
of the module declaration.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1113
\f[I]target\-module\f[R] can be all unnamed to read all unnamed modules.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1114
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1115
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1116
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1117
.B \f[CB]\-\-add\-exports\f[R] \f[I]module\f[R]\f[CB]/\f[R]\f[I]package\f[R]\f[CB]=\f[R]\f[I]target\-module\f[R](\f[CB],\f[R]\f[I]target\-module\f[R])*
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1118
Updates \f[I]module\f[R] to export \f[I]package\f[R] to
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1119
\f[I]target\-module\f[R], regardless of module declaration.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1120
The \f[I]target\-module\f[R] can be all unnamed to export to all unnamed
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1121
modules.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1122
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1123
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1124
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1125
.B \f[CB]\-\-add\-opens\f[R] \f[I]module\f[R]\f[CB]/\f[R]\f[I]package\f[R]\f[CB]=\f[R]\f[I]target\-module\f[R](\f[CB],\f[R]\f[I]target\-module\f[R])*
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1126
Updates \f[I]module\f[R] to open \f[I]package\f[R] to
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1127
\f[I]target\-module\f[R], regardless of module declaration.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1128
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1129
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1130
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1131
.B \f[CB]\-\-illegal\-access=\f[R]\f[I]parameter\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1132
When present at run time, \f[CB]\-\-illegal\-access=\f[R] takes a keyword
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1133
\f[I]parameter\f[R] to specify a mode of operation:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1134
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1135
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1136
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1137
\f[B]Note:\f[R] This option will be removed in a future release.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1138
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1139
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1140
\f[CB]permit\f[R]: This mode opens each package in each module in the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1141
run\-time image to code in all unnamed modules ( such as code on the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1142
class path), if that package existed in JDK 8.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1143
This enables both static access, (for example, by compiled bytecode, and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1144
deep reflective access) through the platform\[aq]s various reflection
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1145
APIs.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1146
The first reflective\-access operation to any such package causes a
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1147
warning to be issued.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1148
However, no warnings are issued after the first occurrence.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1149
This single warning describes how to enable further warnings.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1150
This mode is the default for the current JDK but will change in a future
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1151
release.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1152
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1153
\f[CB]warn\f[R]: This mode is identical to \f[CB]permit\f[R] except that a
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1154
warning message is issued for each illegal reflective\-access operation.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1155
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1156
\f[CB]debug\f[R]: This mode is identical to \f[CB]warn\f[R] except that both
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1157
a warning message and a stack trace are issued for each illegal
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1158
reflective\-access operation.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1159
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1160
\f[CB]deny\f[R]: This mode disables all illegal\-access operations except
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1161
for those enabled by other command\-line options, such as
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1162
\f[CB]\-\-add\-opens\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1163
This mode will become the default in a future release.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1164
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1165
The default mode, \f[CB]\-\-illegal\-access=permit\f[R], is intended to
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1166
make you aware of code on the class path that reflectively accesses any
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1167
JDK\-internal APIs at least once.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1168
To learn about all such accesses, you can use the \f[CB]warn\f[R] or the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1169
\f[CB]debug\f[R] modes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1170
For each library or framework on the class path that requires illegal
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1171
access, you have two options:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1172
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1173
If the component\[aq]s maintainers have already released a fixed version
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1174
that no longer uses JDK\-internal APIs then you can consider upgrading
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1175
to that version.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1176
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1177
If the component still needs to be fixed, then you can contact its
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1178
maintainers and ask them to replace their use of JDK\-internal APIs with
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1179
the proper exported APIs.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1180
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1181
If you must continue to use a component that requires illegal access,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1182
then you can eliminate the warning messages by using one or more
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1183
\f[CB]\-\-add\-opens\f[R] options to open only those internal packages to
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1184
which access is required.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1185
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1186
To verify that your application is ready for a future version of the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1187
JDK, run it with \f[CB]\-\-illegal\-access=deny\f[R] along with any
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1188
necessary \f[CB]\-\-add\-opens\f[R] options.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1189
Any remaining illegal\-access errors will most likely be due to static
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1190
references from compiled code to JDK\-internal APIs.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1191
You can identify those by running the \f[B]jdeps\f[R] tool with the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1192
\f[CB]\-\-jdk\-internals\f[R] option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1193
For performance reasons, the current JDK does not issue warnings for
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1194
illegal static\-access operations.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1195
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1196
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1197
.B \f[CB]\-\-limit\-modules\f[R] \f[I]module\f[R][\f[CB],\f[R]\f[I]module\f[R]...]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1198
Specifies the limit of the universe of observable modules.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1199
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1200
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1201
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1202
.B \f[CB]\-\-patch\-module\f[R] \f[I]module\f[R]\f[CB]=\f[R]\f[I]file\f[R](\f[CB];\f[R]\f[I]file\f[R])*
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1203
Overrides or augments a module with classes and resources in JAR files
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1204
or directories.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1205
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1206
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1207
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1208
.B \f[CB]\-\-disable\-\@files\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1209
Can be used anywhere on the command line, including in an argument file,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1210
to prevent further \f[CB]\@\f[R]\f[I]filename\f[R] expansion.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1211
This option stops expanding \f[CB]\@\f[R]\-argfiles after the option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1212
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1213
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1214
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1215
.B \f[CB]\-\-source\f[R] \f[I]version\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1216
Sets the version of the source in source\-file mode.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1217
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1218
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1219
.SH EXTRA OPTIONS FOR MACOS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1220
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1221
The following extra options are macOS specific.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1222
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1223
.B \f[CB]\-XstartOnFirstThread\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1224
Runs the \f[CB]main()\f[R] method on the first (AppKit) thread.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1225
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1226
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1227
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1228
.B \f[CB]\-Xdock:name=\f[R]\f[I]application_name\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1229
Overrides the default application name displayed in dock.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1230
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1231
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1232
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1233
.B \f[CB]\-Xdock:icon=\f[R]\f[I]path_to_icon_file\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1234
Overrides the default icon displayed in dock.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1235
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1236
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1237
.SH ADVANCED OPTIONS FOR JAVA
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1238
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1239
These \f[CB]java\f[R] options can be used to enable other advanced
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1240
options.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1241
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1242
.B \f[CB]\-XX:+UnlockDiagnosticVMOptions\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1243
Unlocks the options intended for diagnosing the JVM.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1244
By default, this option is disabled and diagnostic options aren\[aq]t
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1245
available.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1246
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1247
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1248
Command line options that are enabled with the use of this option are
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1249
not supported.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1250
If you encounter issues while using any of these options, it is very
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1251
likely that you will be required to reproduce the problem without using
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1252
any of these unsupported options before Oracle Support can assist with
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1253
an investigation.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1254
It is also possible that any of these options may be removed or their
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1255
behavior changed without any warning.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1256
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1257
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1258
.B \f[CB]\-XX:+UnlockExperimentalVMOptions\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1259
Unlocks the options that provide experimental features in the JVM.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1260
By default, this option is disabled and experimental features aren\[aq]t
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1261
available.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1262
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1263
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1264
.SH ADVANCED RUNTIME OPTIONS FOR JAVA
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1265
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1266
These \f[CB]java\f[R] options control the runtime behavior of the Java
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1267
HotSpot VM.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1268
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1269
.B \f[CB]\-XX:ActiveProcessorCount=\f[R]\f[I]x\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1270
Overrides the number of CPUs that the VM will use to calculate the size
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1271
of thread pools it will use for various operations such as Garbage
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1272
Collection and ForkJoinPool.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1273
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1274
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1275
The VM normally determines the number of available processors from the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1276
operating system.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1277
This flag can be useful for partitioning CPU resources when running
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1278
multiple Java processes in docker containers.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1279
This flag is honored even if \f[CB]UseContainerSupport\f[R] is not
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1280
enabled.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1281
See \f[CB]\-XX:\-UseContainerSupport\f[R] for a description of enabling
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1282
and disabling container support.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1283
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1284
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1285
.B \f[CB]\-XX:AllocateHeapAt=\f[R]\f[I]path\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1286
Takes a path to the file system and uses memory mapping to allocate the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1287
object heap on the memory device.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1288
Using this option enables the HotSpot VM to allocate the Java object
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1289
heap on an alternative memory device, such as an NV\-DIMM, specified by
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1290
the user.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1291
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1292
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1293
Alternative memory devices that have the same semantics as DRAM,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1294
including the semantics of atomic operations, can be used instead of
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1295
DRAM for the object heap without changing the existing application code.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1296
All other memory structures (such as the code heap, metaspace, and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1297
thread stacks) continue to reside in DRAM.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1298
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1299
Some operating systems expose non\-DRAM memory through the file system.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1300
Memory\-mapped files in these file systems bypass the page cache and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1301
provide a direct mapping of virtual memory to the physical memory on the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1302
device.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1303
The existing heap related flags (such as \f[CB]\-Xmx\f[R] and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1304
\f[CB]\-Xms\f[R]) and garbage\-collection related flags continue to work
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1305
as before.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1306
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1307
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1308
.B \f[CB]\-XX:\-CompactStrings\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1309
Disables the Compact Strings feature.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1310
By default, this option is enabled.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1311
When this option is enabled, Java Strings containing only single\-byte
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1312
characters are internally represented and stored as
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1313
single\-byte\-per\-character Strings using ISO\-8859\-1 / Latin\-1
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1314
encoding.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1315
This reduces, by 50%, the amount of space required for Strings
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1316
containing only single\-byte characters.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1317
For Java Strings containing at least one multibyte character: these are
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1318
represented and stored as 2 bytes per character using UTF\-16 encoding.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1319
Disabling the Compact Strings feature forces the use of UTF\-16 encoding
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1320
as the internal representation for all Java Strings.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1321
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1322
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1323
Cases where it may be beneficial to disable Compact Strings include the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1324
following:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1325
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1326
When it\[aq]s known that an application overwhelmingly will be
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1327
allocating multibyte character Strings
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1328
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1329
In the unexpected event where a performance regression is observed in
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1330
migrating from Java SE 8 to Java SE 9 and an analysis shows that Compact
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1331
Strings introduces the regression
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1332
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1333
In both of these scenarios, disabling Compact Strings makes sense.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1334
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1335
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1336
.B \f[CB]\-XX:ErrorFile=\f[R]\f[I]filename\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1337
Specifies the path and file name to which error data is written when an
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1338
irrecoverable error occurs.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1339
By default, this file is created in the current working directory and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1340
named \f[CB]hs_err_pid\f[R]\f[I]pid\f[R]\f[CB]\&.log\f[R] where \f[I]pid\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1341
is the identifier of the process that encountered the error.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1342
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1343
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1344
The following example shows how to set the default log file (note that
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1345
the identifier of the process is specified as \f[CB]%p\f[R]):
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1346
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1347
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1348
\f[CB]\-XX:ErrorFile=./hs_err_pid%p.log\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1349
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1350
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1351
\f[B]Oracle Solaris, Linux, and macOS:\f[R] The following example shows
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1352
how to set the error log to \f[CB]/var/log/java/java_error.log\f[R]:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1353
.RS 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1354
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1355
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1356
\f[CB]\-XX:ErrorFile=/var/log/java/java_error.log\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1357
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1358
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1359
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1360
\f[B]Windows:\f[R] The following example shows how to set the error log
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1361
file to \f[CB]C:/log/java/java_error.log\f[R]:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1362
.RS 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1363
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1364
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1365
\f[CB]\-XX:ErrorFile=C:/log/java/java_error.log\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1366
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1367
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1368
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1369
If the file exists, and is writeable, then it will be overwritten.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1370
Otherwise, if the file can\[aq]t be created in the specified directory
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1371
(due to insufficient space, permission problem, or another issue), then
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1372
the file is created in the temporary directory for the operating system:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1373
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1374
\f[B]Oracle Solaris, Linux, and macOS:\f[R] The temporary directory is
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1375
\f[CB]/tmp\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1376
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1377
\f[B]Windows:\f[R] The temporary directory is specified by the value of
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1378
the \f[CB]TMP\f[R] environment variable; if that environment variable
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1379
isn\[aq]t defined, then the value of the \f[CB]TEMP\f[R] environment
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1380
variable is used.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1381
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1382
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1383
.B \f[CB]\-XX:+ExtensiveErrorReports\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1384
Enables the reporting of more extensive error information in the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1385
\f[CB]ErrorFile\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1386
This option can be turned on in environments where maximal information
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1387
is desired \- even if the resulting logs may be quite large and/or
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1388
contain information that might be considered sensitive.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1389
The information can vary from release to release, and across different
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1390
platforms.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1391
By default this option is disabled.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1392
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1393
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1394
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1395
.B \f[CB]\-XX:+FlightRecorder\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1396
Enables the use of Java Flight Recorder (JFR) during the runtime of the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1397
application.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1398
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1399
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1400
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1401
\f[B]Note:\f[R] The \f[CB]\-XX:+FlightRecorder\f[R] option is no longer
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1402
required to use JFR.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1403
This was a change made in JDK 8u40.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1404
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1405
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1406
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1407
.B \f[CB]\-XX:FlightRecorderOptions=\f[R]\f[I]parameter\f[R]\f[CB]=\f[R]\f[I]value\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1408
Sets the parameters that control the behavior of JFR.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1409
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1410
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1411
The following list contains the available JFR
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1412
\f[I]parameter\f[R]\f[CB]=\f[R]\f[I]value\f[R] entries:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1413
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1414
.B \f[CB]allow_threadbuffers_to_disk=\f[R]{\f[CB]true\f[R]|\f[CB]false\f[R]}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1415
Specifies whether thread buffers are written directly to disk if the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1416
buffer thread is blocked.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1417
By default, this parameter is disabled.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1418
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1419
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1420
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1421
.B \f[CB]globalbuffersize=\f[R]\f[I]size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1422
Specifies the total amount of primary memory used for data retention.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1423
The default value is based on the value specified for
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1424
\f[CB]memorysize\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1425
Change the \f[CB]memorysize\f[R] parameter to alter the size of global
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1426
buffers.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1427
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1428
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1429
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1430
.B \f[CB]maxchunksize=\f[R]\f[I]size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1431
Specifies the maximum size (in bytes) of the data chunks in a recording.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1432
Append \f[CB]m\f[R] or \f[CB]M\f[R] to specify the size in megabytes (MB),
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1433
or \f[CB]g\f[R] or \f[CB]G\f[R] to specify the size in gigabytes (GB).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1434
By default, the maximum size of data chunks is set to 12 MB.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1435
The minimum allowed is 1 MB.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1436
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1437
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1438
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1439
.B \f[CB]memorysize=\f[R]\f[I]size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1440
Determines how much buffer memory should be used, and sets the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1441
\f[CB]globalbuffersize\f[R] and \f[CB]numglobalbuffers\f[R] parameters based
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1442
on the size specified.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1443
Append \f[CB]m\f[R] or \f[CB]M\f[R] to specify the size in megabytes (MB),
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1444
or \f[CB]g\f[R] or \f[CB]G\f[R] to specify the size in gigabytes (GB).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1445
By default, the memory size is set to 10 MB.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1446
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1447
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1448
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1449
.B \f[CB]numglobalbuffers\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1450
Specifies the number of global buffers used.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1451
The default value is based on the memory size specified.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1452
Change the \f[CB]memorysize\f[R] parameter to alter the number of global
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1453
buffers.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1454
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1455
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1456
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1457
.B \f[CB]old\-object\-queue\-size=number\-of\-objects\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1458
Maximum number of old objects to track.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1459
By default, the number of objects is set to 256.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1460
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1461
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1462
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1463
.B \f[CB]repository=\f[R]\f[I]path\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1464
Specifies the repository (a directory) for temporary disk storage.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1465
By default, the system\[aq]s temporary directory is used.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1466
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1467
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1468
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1469
.B \f[CB]retransform=\f[R]{\f[CB]true\f[R]|\f[CB]false\f[R]}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1470
Specifies whether event classes should be retransformed using JVMTI.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1471
If false, instrumentation is added when event classes are loaded.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1472
By default, this parameter is enabled.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1473
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1474
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1475
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1476
.B \f[CB]samplethreads=\f[R]{\f[CB]true\f[R]|\f[CB]false\f[R]}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1477
Specifies whether thread sampling is enabled.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1478
Thread sampling occurs only if the sampling event is enabled along with
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1479
this parameter.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1480
By default, this parameter is enabled.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1481
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1482
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1483
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1484
.B \f[CB]stackdepth=\f[R]\f[I]depth\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1485
Stack depth for stack traces.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1486
By default, the depth is set to 64 method calls.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1487
The maximum is 2048.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1488
Values greater than 64 could create significant overhead and reduce
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1489
performance.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1490
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1491
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1492
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1493
.B \f[CB]threadbuffersize=\f[R]\f[I]size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1494
Specifies the per\-thread local buffer size (in bytes).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1495
By default, the local buffer size is set to 8 kilobytes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1496
Overriding this parameter could reduce performance and is not
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1497
recommended.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1498
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1499
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1500
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1501
You can specify values for multiple parameters by separating them with a
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1502
comma.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1503
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1504
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1505
.B \f[CB]\-XX:LargePageSizeInBytes=\f[R]\f[I]size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1506
Sets the maximum size (in bytes) for large pages used for the Java heap.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1507
The \f[I]size\f[R] argument must be a power of 2 (2, 4, 8, 16, and so
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1508
on).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1509
Append the letter \f[CB]k\f[R] or \f[CB]K\f[R] to indicate kilobytes,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1510
\f[CB]m\f[R] or \f[CB]M\f[R] to indicate megabytes, or \f[CB]g\f[R] or
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1511
\f[CB]G\f[R] to indicate gigabytes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1512
By default, the size is set to 0, meaning that the JVM chooses the size
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1513
for large pages automatically.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1514
See \f[B]Large Pages\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1515
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1516
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1517
The following example describes how to set the large page size to 4
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1518
megabytes (MB):
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1519
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1520
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1521
\f[CB]\-XX:LargePageSizeInBytes=4m\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1522
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1523
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1524
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1525
.B \f[CB]\-XX:MaxDirectMemorySize=\f[R]\f[I]size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1526
Sets the maximum total size (in bytes) of the \f[CB]java.nio\f[R] package,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1527
direct\-buffer allocations.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1528
Append the letter \f[CB]k\f[R] or \f[CB]K\f[R] to indicate kilobytes,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1529
\f[CB]m\f[R] or \f[CB]M\f[R] to indicate megabytes, or \f[CB]g\f[R] or
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1530
\f[CB]G\f[R] to indicate gigabytes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1531
By default, the size is set to 0, meaning that the JVM chooses the size
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1532
for NIO direct\-buffer allocations automatically.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1533
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1534
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1535
The following examples illustrate how to set the NIO size to 1024 KB in
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1536
different units:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1537
.IP
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  1538
.nf
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1539
\f[CB]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1540
\-XX:MaxDirectMemorySize=1m
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1541
\-XX:MaxDirectMemorySize=1024k
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1542
\-XX:MaxDirectMemorySize=1048576
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1543
\f[R]
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  1544
.fi
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1545
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1546
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1547
.B \f[CB]\-XX:\-MaxFDLimit\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1548
Disables the attempt to set the soft limit for the number of open file
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1549
descriptors to the hard limit.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1550
By default, this option is enabled on all platforms, but is ignored on
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1551
Windows.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1552
The only time that you may need to disable this is on Mac OS, where its
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1553
use imposes a maximum of 10240, which is lower than the actual system
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1554
maximum.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1555
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1556
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1557
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1558
.B \f[CB]\-XX:NativeMemoryTracking=\f[R]\f[I]mode\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1559
Specifies the mode for tracking JVM native memory usage.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1560
Possible \f[I]mode\f[R] arguments for this option include the following:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1561
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1562
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1563
.B \f[CB]off\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1564
Instructs not to track JVM native memory usage.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1565
This is the default behavior if you don\[aq]t specify the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1566
\f[CB]\-XX:NativeMemoryTracking\f[R] option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1567
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1568
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1569
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1570
.B \f[CB]summary\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1571
Tracks memory usage only by JVM subsystems, such as Java heap, class,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1572
code, and thread.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1573
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1574
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1575
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1576
.B \f[CB]detail\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1577
In addition to tracking memory usage by JVM subsystems, track memory
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1578
usage by individual \f[CB]CallSite\f[R], individual virtual memory region
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1579
and its committed regions.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1580
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1581
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1582
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1583
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1584
.B \f[CB]\-XX:ObjectAlignmentInBytes=\f[R]\f[I]alignment\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1585
Sets the memory alignment of Java objects (in bytes).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1586
By default, the value is set to 8 bytes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1587
The specified value should be a power of 2, and must be within the range
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1588
of 8 and 256 (inclusive).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1589
This option makes it possible to use compressed pointers with large Java
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1590
heap sizes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1591
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1592
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1593
The heap size limit in bytes is calculated as:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1594
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1595
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1596
\f[CB]4GB\ *\ ObjectAlignmentInBytes\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1597
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1598
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1599
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1600
\f[B]Note:\f[R] As the alignment value increases, the unused space
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1601
between objects also increases.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1602
As a result, you may not realize any benefits from using compressed
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1603
pointers with large Java heap sizes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1604
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1605
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1606
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1607
.B \f[CB]\-XX:OnError=\f[R]\f[I]string\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1608
Sets a custom command or a series of semicolon\-separated commands to
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1609
run when an irrecoverable error occurs.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1610
If the string contains spaces, then it must be enclosed in quotation
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1611
marks.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1612
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1613
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1614
\f[B]Oracle Solaris, Linux, and macOS:\f[R] The following example shows
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1615
how the \f[CB]\-XX:OnError\f[R] option can be used to run the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1616
\f[CB]gcore\f[R] command to create a core image, and start the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1617
\f[CB]gdb\f[R] debugger to attach to the process in case of an
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1618
irrecoverable error (the \f[CB]%p\f[R] designates the current process
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1619
identifier):
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1620
.RS 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1621
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1622
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1623
\f[CB]\-XX:OnError="gcore\ %p;gdb\ \-p\ %p"\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1624
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1625
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1626
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1627
\f[B]Windows:\f[R] The following example shows how the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1628
\f[CB]\-XX:OnError\f[R] option can be used to run the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1629
\f[CB]userdump.exe\f[R] utility to obtain a crash dump in case of an
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1630
irrecoverable error (the \f[CB]%p\f[R] designates the current process
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1631
identifier).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1632
This example assumes that the path to the \f[CB]userdump.exe\f[R] utility
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1633
is specified in the \f[CB]PATH\f[R] environment variable:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1634
.RS 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1635
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1636
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1637
\f[CB]\-XX:OnError="userdump.exe\ %p"\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1638
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1639
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1640
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1641
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1642
.B \f[CB]\-XX:OnOutOfMemoryError=\f[R]\f[I]string\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1643
Sets a custom command or a series of semicolon\-separated commands to
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1644
run when an \f[CB]OutOfMemoryError\f[R] exception is first thrown.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1645
If the string contains spaces, then it must be enclosed in quotation
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1646
marks.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1647
For an example of a command string, see the description of the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1648
\f[CB]\-XX:OnError\f[R] option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1649
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1650
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1651
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1652
.B \f[CB]\-XX:+PrintCommandLineFlags\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1653
Enables printing of ergonomically selected JVM flags that appeared on
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1654
the command line.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1655
It can be useful to know the ergonomic values set by the JVM, such as
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1656
the heap space size and the selected garbage collector.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1657
By default, this option is disabled and flags aren\[aq]t printed.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1658
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1659
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1660
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1661
.B \f[CB]\-XX:+PreserveFramePointer\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1662
Selects between using the RBP register as a general purpose register
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1663
(\f[CB]\-XX:\-PreserveFramePointer\f[R]) and using the RBP register to
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1664
hold the frame pointer of the currently executing method
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1665
(\f[CB]\-XX:+PreserveFramePointer\f[R] .
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1666
If the frame pointer is available, then external profiling tools\ (for
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1667
example, Linux perf) can construct more accurate stack traces.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1668
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1669
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1670
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1671
.B \f[CB]\-XX:+PrintNMTStatistics\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1672
Enables printing of collected native memory tracking data at JVM exit
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1673
when native memory tracking is enabled (see
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1674
\f[CB]\-XX:NativeMemoryTracking\f[R]).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1675
By default, this option is disabled and native memory tracking data
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1676
isn\[aq]t printed.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1677
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1678
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1679
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1680
.B \f[CB]\-XX:SharedArchiveFile=\f[R]\f[I]path\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1681
Specifies the path and name of the class data sharing (CDS) archive file
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1682
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1683
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1684
See \f[B]Application Class Data Sharing\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1685
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1686
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1687
.B \f[CB]\-XX:SharedArchiveConfigFile\f[R]=\f[I]shared_config_file\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1688
Specifies additional shared data added to the archive file.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1689
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1690
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1691
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1692
.B \f[CB]\-XX:SharedClassListFile=\f[R]\f[I]file_name\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1693
Specifies the text file that contains the names of the classes to store
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1694
in the class data sharing (CDS) archive.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1695
This file contains the full name of one class per line, except slashes
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1696
(\f[CB]/\f[R]) replace dots (\f[CB]\&.\f[R]).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1697
For example, to specify the classes \f[CB]java.lang.Object\f[R] and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1698
\f[CB]hello.Main\f[R], create a text file that contains the following two
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1699
lines:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1700
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1701
.IP
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  1702
.nf
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1703
\f[CB]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1704
java/lang/Object
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1705
hello/Main
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1706
\f[R]
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  1707
.fi
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1708
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1709
The classes that you specify in this text file should include the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1710
classes that are commonly used by the application.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1711
They may include any classes from the application, extension, or
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1712
bootstrap class paths.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1713
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1714
See \f[B]Application Class Data Sharing\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1715
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1716
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1717
.B \f[CB]\-XX:+ShowMessageBoxOnError\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1718
Enables the display of a dialog box when the JVM experiences an
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1719
irrecoverable error.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1720
This prevents the JVM from exiting and keeps the process active so that
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1721
you can attach a debugger to it to investigate the cause of the error.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1722
By default, this option is disabled.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1723
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1724
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1725
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1726
.B \f[CB]\-XX:StartFlightRecording=\f[R]\f[I]parameter\f[R]\f[CB]=\f[R]\f[I]value\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1727
Starts a JFR recording for the Java application.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1728
This option is equivalent to the \f[CB]JFR.start\f[R] diagnostic command
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1729
that starts a recording during runtime.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1730
You can set the following \f[I]parameter\f[R]\f[CB]=\f[R]\f[I]value\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1731
entries when starting a JFR recording:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1732
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1733
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1734
.B \f[CB]delay=\f[R]\f[I]time\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1735
Specifies the delay between the Java application launch time and the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1736
start of the recording.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1737
Append \f[CB]s\f[R] to specify the time in seconds, \f[CB]m\f[R] for
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1738
minutes, \f[CB]h\f[R] for hours, or \f[CB]d\f[R] for days (for example,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1739
specifying \f[CB]10m\f[R] means 10 minutes).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1740
By default, there\[aq]s no delay, and this parameter is set to 0.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1741
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1742
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1743
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1744
.B \f[CB]disk=\f[R]{\f[CB]true\f[R]|\f[CB]false\f[R]}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1745
Specifies whether to write data to disk while recording.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1746
By default, this parameter is enabled.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1747
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1748
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1749
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1750
.B \f[CB]dumponexit=\f[R]{\f[CB]true\f[R]|\f[CB]false\f[R]}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1751
Specifies if the running recording is dumped when the JVM shuts down.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1752
If enabled and a \f[CB]filename\f[R] is not entered, the recording is
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1753
written to a file in the directory where the process was started.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1754
The file name is a system\-generated name that contains the process ID,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1755
recording ID, and current timestamp, similar to
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1756
\f[CB]hotspot\-pid\-47496\-id\-1\-2018_01_25_19_10_41.jfr\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1757
By default, this parameter is disabled.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1758
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1759
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1760
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1761
.B \f[CB]duration=\f[R]\f[I]time\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1762
Specifies the duration of the recording.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1763
Append \f[CB]s\f[R] to specify the time in seconds, \f[CB]m\f[R] for
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1764
minutes, \f[CB]h\f[R] for hours, or \f[CB]d\f[R] for days (for example,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1765
specifying \f[CB]5h\f[R] means 5 hours).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1766
By default, the duration isn\[aq]t limited, and this parameter is set to
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1767
0.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1768
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1769
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1770
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1771
.B \f[CB]filename=\f[R]\f[I]path\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1772
Specifies the path and name of the file to which the recording is
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1773
written when the recording is stopped, for example:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1774
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1775
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1776
\f[CB]recording.jfr\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1777
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1778
\f[CB]/home/user/recordings/recording.jfr\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1779
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1780
\f[CB]c:\\recordings\\recording.jfr\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1781
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1782
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1783
.B \f[CB]name=\f[R]\f[I]identifier\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1784
Takes both the name and the identifier of a recording.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1785
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1786
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1787
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1788
.B \f[CB]maxage=\f[R]\f[I]time\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1789
Specifies the maximum age of disk data to keep for the recording.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1790
This parameter is valid only when the \f[CB]disk\f[R] parameter is set to
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1791
\f[CB]true\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1792
Append \f[CB]s\f[R] to specify the time in seconds, \f[CB]m\f[R] for
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1793
minutes, \f[CB]h\f[R] for hours, or \f[CB]d\f[R] for days (for example,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1794
specifying \f[CB]30s\f[R] means 30 seconds).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1795
By default, the maximum age isn\[aq]t limited, and this parameter is set
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1796
to \f[CB]0s\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1797
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1798
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1799
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1800
.B \f[CB]maxsize=\f[R]\f[I]size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1801
Specifies the maximum size (in bytes) of disk data to keep for the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1802
recording.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1803
This parameter is valid only when the \f[CB]disk\f[R] parameter is set to
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1804
\f[CB]true\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1805
The value must not be less than the value for the \f[CB]maxchunksize\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1806
parameter set with \f[CB]\-XX:FlightRecorderOptions\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1807
Append \f[CB]m\f[R] or \f[CB]M\f[R] to specify the size in megabytes, or
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1808
\f[CB]g\f[R] or \f[CB]G\f[R] to specify the size in gigabytes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1809
By default, the maximum size of disk data isn\[aq]t limited, and this
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1810
parameter is set to \f[CB]0\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1811
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1812
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1813
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1814
.B \f[CB]path\-to\-gc\-roots=\f[R]{\f[CB]true\f[R]|\f[CB]false\f[R]}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1815
Specifies whether to collect the path to garbage collection (GC) roots
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1816
at the end of a recording.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1817
By default, this parameter is disabled.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1818
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1819
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1820
The path to GC roots is useful for finding memory leaks, but collecting
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1821
it is time\-consuming.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1822
Enable this option only when you start a recording for an application
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1823
that you suspect has a memory leak.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1824
If the \f[CB]settings\f[R] parameter is set to \f[CB]profile\f[R], the stack
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1825
trace from where the potential leaking object was allocated is included
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1826
in the information collected.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1827
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1828
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1829
.B \f[CB]settings=\f[R]\f[I]path\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1830
Specifies the path and name of the event settings file (of type JFC).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1831
By default, the \f[CB]default.jfc\f[R] file is used, which is located in
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1832
\f[CB]JRE_HOME/lib/jfr\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1833
This default settings file collects a predefined set of information with
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1834
low overhead, so it has minimal impact on performance and can be used
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1835
with recordings that run continuously.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1836
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1837
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1838
A second settings file is also provided, profile.jfc, which provides
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1839
more data than the default configuration, but can have more overhead and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1840
impact performance.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1841
Use this configuration for short periods of time when more information
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1842
is needed.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1843
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1844
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1845
You can specify values for multiple parameters by separating them with a
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1846
comma.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1847
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1848
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1849
.B \f[CB]\-XX:ThreadStackSize=\f[R]\f[I]size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1850
Sets the Java thread stack size (in kilobytes).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1851
Use of a scaling suffix, such as \f[CB]k\f[R], results in the scaling of
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1852
the kilobytes value so that \f[CB]\-XX:ThreadStackSize=1k\f[R] sets the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1853
Java thread stack size\ to 1024*1024 bytes or 1 megabyte.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1854
The default value depends on the platform:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1855
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1856
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1857
Linux/x64 (64\-bit): 1024 KB
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1858
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1859
macOS (64\-bit): 1024 KB
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1860
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1861
Oracle Solaris (64\-bit): 1024 KB
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1862
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1863
Windows: The default value depends on virtual memory
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1864
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1865
The following examples show how to set the thread stack size to 1
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1866
megabyte in different units:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1867
.IP
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  1868
.nf
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1869
\f[CB]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1870
\-XX:ThreadStackSize=1k
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1871
\-XX:ThreadStackSize=1024
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1872
\f[R]
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  1873
.fi
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1874
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1875
This option is similar to \f[CB]\-Xss\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1876
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1877
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1878
.B \f[CB]\-XX:\-UseBiasedLocking\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1879
Disables the use of biased locking.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1880
Some applications with significant amounts of uncontended
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1881
synchronization may attain significant speedups with this flag enabled,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1882
but applications with certain patterns of locking may see slowdowns.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1883
\&.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1884
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1885
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1886
By default, this option is enabled.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1887
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1888
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1889
.B \f[CB]\-XX:\-UseCompressedOops\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1890
Disables the use of compressed pointers.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1891
By default, this option is enabled, and compressed pointers are used
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1892
when Java heap sizes are less than 32 GB.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1893
When this option is enabled, object references are represented as
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1894
32\-bit offsets instead of 64\-bit pointers, which typically increases
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1895
performance when running the application with Java heap sizes of less
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1896
than 32 GB.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1897
This option works only for 64\-bit JVMs.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1898
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1899
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1900
It\[aq]s also possible to use compressed pointers when Java heap sizes
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1901
are greater than 32 GB.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1902
See the \f[CB]\-XX:ObjectAlignmentInBytes\f[R] option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1903
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1904
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1905
.B \f[CB]\-XX:\-UseContainerSupport\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1906
The VM now provides automatic container detection support, which allows
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1907
the VM to determine the amount of memory and number of processors that
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1908
are available to a Java process running in docker containers.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1909
It uses this information to allocate system resources.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1910
This support is only available on Linux x64 platforms.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1911
\ If supported, the default for this flag is\ \f[CB]true\f[R], and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1912
container support is enabled by default.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1913
\ It\ can be disabled with\ \f[CB]\-XX:\-UseContainerSupport\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1914
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1915
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1916
Unified Logging is available to help to diagnose issues related to this
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1917
support.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1918
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1919
Use \f[CB]\-Xlog:os+container=trace\f[R] for maximum logging of container
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1920
information.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1921
See \f[B]Enable Logging with the JVM Unified Logging Framework\f[R] for a
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1922
description of using Unified Logging.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1923
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1924
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1925
.B \f[CB]\-XX:+UseHugeTLBFS\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1926
\f[B]Linux only:\f[R] This option is the equivalent of specifying
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1927
\f[CB]\-XX:+UseLargePages\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1928
This option is disabled by default.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1929
This option pre\-allocates all large pages up\-front, when memory is
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1930
reserved; consequently the JVM can\[aq]t dynamically grow or shrink
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1931
large pages memory areas; see \f[CB]\-XX:UseTransparentHugePages\f[R] if
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1932
you want this behavior.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1933
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1934
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1935
See \f[B]Large Pages\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1936
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1937
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1938
.B \f[CB]\-XX:+UseLargePages\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1939
Enables the use of large page memory.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1940
By default, this option is disabled and large page memory isn\[aq]t
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1941
used.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1942
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1943
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1944
See \f[B]Large Pages\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1945
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1946
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1947
.B \f[CB]\-XX:+UseTransparentHugePages\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1948
\f[B]Linux only:\f[R] Enables the use of large pages that can dynamically
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1949
grow or shrink.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1950
This option is disabled by default.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1951
You may encounter performance problems with transparent huge pages as
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1952
the OS moves other pages around to create huge pages; this option is
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1953
made available for experimentation.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1954
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1955
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1956
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1957
.B \f[CB]\-XX:+AllowUserSignalHandlers\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1958
Enables installation of signal handlers by the application.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1959
By default, this option is disabled and the application isn\[aq]t
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1960
allowed to install signal handlers.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1961
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1962
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1963
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1964
.B \f[CB]\-XX:VMOptionsFile=\f[R]\f[I]filename\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1965
Allows user to specify VM options in a file, for example,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1966
\f[CB]java\ \-XX:VMOptionsFile=/var/my_vm_options\ HelloWorld\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1967
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1968
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1969
.SH ADVANCED JIT COMPILER OPTIONS FOR JAVA
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1970
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1971
These \f[CB]java\f[R] options control the dynamic just\-in\-time (JIT)
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1972
compilation performed by the Java HotSpot VM.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1973
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1974
.B \f[CB]\-XX:AllocateInstancePrefetchLines=\f[R]\f[I]lines\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1975
Sets the number of lines to prefetch ahead of the instance allocation
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1976
pointer.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1977
By default, the number of lines to prefetch is set to 1:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1978
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1979
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1980
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1981
\f[CB]\-XX:AllocateInstancePrefetchLines=1\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1982
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1983
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1984
Only the Java HotSpot Server VM supports this option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1985
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1986
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1987
.B \f[CB]\-XX:AllocatePrefetchDistance=\f[R]\f[I]size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1988
Sets the size (in bytes) of the prefetch distance for object allocation.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1989
Memory about to be written with the value of new objects is prefetched
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1990
up to this distance starting from the address of the last allocated
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1991
object.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1992
Each Java thread has its own allocation point.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1993
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1994
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1995
Negative values denote that prefetch distance is chosen based on the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1996
platform.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1997
Positive values are bytes to prefetch.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1998
Append the letter \f[CB]k\f[R] or \f[CB]K\f[R] to indicate kilobytes,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1999
\f[CB]m\f[R] or \f[CB]M\f[R] to indicate megabytes, or \f[CB]g\f[R] or
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2000
\f[CB]G\f[R] to indicate gigabytes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2001
The default value is set to \-1.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2002
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2003
The following example shows how to set the prefetch distance to 1024
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2004
bytes:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2005
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2006
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2007
\f[CB]\-XX:AllocatePrefetchDistance=1024\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2008
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2009
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2010
Only the Java HotSpot Server VM supports this option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2011
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2012
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2013
.B \f[CB]\-XX:AllocatePrefetchInstr=\f[R]\f[I]instruction\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2014
Sets the prefetch instruction to prefetch ahead of the allocation
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2015
pointer.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2016
Only the Java HotSpot Server VM supports this option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2017
Possible values are from 0 to 3.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2018
The actual instructions behind the values depend on the platform.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2019
By default, the prefetch instruction is set to 0:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2020
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2021
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2022
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2023
\f[CB]\-XX:AllocatePrefetchInstr=0\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2024
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2025
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2026
Only the Java HotSpot Server VM supports this option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2027
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2028
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2029
.B \f[CB]\-XX:AllocatePrefetchLines=\f[R]\f[I]lines\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2030
Sets the number of cache lines to load after the last object allocation
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2031
by using the prefetch instructions generated in compiled code.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2032
The default value is 1 if the last allocated object was an instance, and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2033
3 if it was an array.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2034
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2035
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2036
The following example shows how to set the number of loaded cache lines
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2037
to 5:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2038
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2039
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2040
\f[CB]\-XX:AllocatePrefetchLines=5\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2041
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2042
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2043
Only the Java HotSpot Server VM supports this option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2044
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2045
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2046
.B \f[CB]\-XX:AllocatePrefetchStepSize=\f[R]\f[I]size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2047
Sets the step size (in bytes) for sequential prefetch instructions.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2048
Append the letter \f[CB]k\f[R] or \f[CB]K\f[R] to indicate kilobytes,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2049
\f[CB]m\f[R] or \f[CB]M\f[R] to indicate megabytes, \f[CB]g\f[R] or \f[CB]G\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2050
to indicate gigabytes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2051
By default, the step size is set to 16 bytes:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2052
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2053
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2054
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2055
\f[CB]\-XX:AllocatePrefetchStepSize=16\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2056
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2057
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2058
Only the Java HotSpot Server VM supports this option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2059
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2060
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2061
.B \f[CB]\-XX:AllocatePrefetchStyle=\f[R]\f[I]style\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2062
Sets the generated code style for prefetch instructions.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2063
The \f[I]style\f[R] argument is an integer from 0 to 3:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2064
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2065
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2066
.B \f[CB]0\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2067
Don\[aq]t generate prefetch instructions.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2068
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2069
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2070
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2071
.B \f[CB]1\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2072
Execute prefetch instructions after each allocation.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2073
This is the default parameter.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2074
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2075
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2076
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2077
.B \f[CB]2\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2078
Use the thread\-local allocation block (TLAB) watermark pointer to
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2079
determine when prefetch instructions are executed.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2080
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2081
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2082
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2083
.B \f[CB]3\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2084
Use BIS instruction on SPARC for allocation prefetch.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2085
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2086
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2087
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2088
Only the Java HotSpot Server VM supports this option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2089
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2090
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2091
.B \f[CB]\-XX:+BackgroundCompilation\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2092
Enables background compilation.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2093
This option is enabled by default.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2094
To disable background compilation, specify
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2095
\f[CB]\-XX:\-BackgroundCompilation\f[R] (this is equivalent to specifying
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2096
\f[CB]\-Xbatch\f[R]).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2097
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2098
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2099
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2100
.B \f[CB]\-XX:CICompilerCount=\f[R]\f[I]threads\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2101
Sets the number of compiler threads to use for compilation.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2102
By default, the number of threads is set to 2 for the server JVM, to 1
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2103
for the client JVM, and it scales to the number of cores if tiered
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2104
compilation is used.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2105
The following example shows how to set the number of threads to 2:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2106
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2107
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2108
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2109
\f[CB]\-XX:CICompilerCount=2\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2110
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2111
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2112
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2113
.B \f[CB]\-XX:CompileCommand=\f[R]\f[I]command\f[R]\f[CB],\f[R]\f[I]method\f[R][\f[CB],\f[R]\f[I]option\f[R]]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2114
Specifies a \f[I]command\f[R] to perform on a \f[I]method\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2115
For example, to exclude the \f[CB]indexOf()\f[R] method of the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2116
\f[CB]String\f[R] class from being compiled, use the following:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2117
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2118
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2119
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2120
\f[CB]\-XX:CompileCommand=exclude,java/lang/String.indexOf\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2121
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2122
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2123
Note that the full class name is specified, including all packages and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2124
subpackages separated by a slash (\f[CB]/\f[R]).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2125
For easier cut\-and\-paste operations, it\[aq]s also possible to use the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2126
method name format produced by the \f[CB]\-XX:+PrintCompilation\f[R] and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2127
\f[CB]\-XX:+LogCompilation\f[R] options:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2128
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2129
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2130
\f[CB]\-XX:CompileCommand=exclude,java.lang.String::indexOf\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2131
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2132
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2133
If the method is specified without the signature, then the command is
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2134
applied to all methods with the specified name.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2135
However, you can also specify the signature of the method in the class
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2136
file format.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2137
In this case, you should enclose the arguments in quotation marks,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2138
because otherwise the shell treats the semicolon as a command end.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2139
For example, if you want to exclude only the \f[CB]indexOf(String)\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2140
method of the \f[CB]String\f[R] class from being compiled, use the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2141
following:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2142
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2143
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2144
\f[CB]\-XX:CompileCommand="exclude,java/lang/String.indexOf,(Ljava/lang/String;)I"\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2145
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2146
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2147
You can also use the asterisk (*) as a wildcard for class and method
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2148
names.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2149
For example, to exclude all \f[CB]indexOf()\f[R] methods in all classes
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2150
from being compiled, use the following:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2151
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2152
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2153
\f[CB]\-XX:CompileCommand=exclude,*.indexOf\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2154
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2155
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2156
The commas and periods are aliases for spaces, making it easier to pass
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2157
compiler commands through a shell.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2158
You can pass arguments to \f[CB]\-XX:CompileCommand\f[R] using spaces as
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2159
separators by enclosing the argument in quotation marks:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2160
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2161
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2162
\f[CB]\-XX:CompileCommand="exclude\ java/lang/String\ indexOf"\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2163
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2164
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2165
Note that after parsing the commands passed on the command line using
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2166
the \f[CB]\-XX:CompileCommand\f[R] options, the JIT compiler then reads
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2167
commands from the \f[CB]\&.hotspot_compiler\f[R] file.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2168
You can add commands to this file or specify a different file using the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2169
\f[CB]\-XX:CompileCommandFile\f[R] option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2170
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2171
To add several commands, either specify the \f[CB]\-XX:CompileCommand\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2172
option multiple times, or separate each argument with the new line
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2173
separator (\f[CB]\\n\f[R]).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2174
The following commands are available:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2175
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2176
.B \f[CB]break\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2177
Sets a breakpoint when debugging the JVM to stop at the beginning of
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2178
compilation of the specified method.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2179
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2180
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2181
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2182
.B \f[CB]compileonly\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2183
Excludes all methods from compilation except for the specified method.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2184
As an alternative, you can use the \f[CB]\-XX:CompileOnly\f[R] option,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2185
which lets you specify several methods.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2186
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2187
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2188
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2189
.B \f[CB]dontinline\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2190
Prevents inlining of the specified method.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2191
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2192
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2193
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2194
.B \f[CB]exclude\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2195
Excludes the specified method from compilation.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2196
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2197
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2198
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2199
.B \f[CB]help\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2200
Prints a help message for the \f[CB]\-XX:CompileCommand\f[R] option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2201
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2202
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2203
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2204
.B \f[CB]inline\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2205
Attempts to inline the specified method.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2206
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2207
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2208
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2209
.B \f[CB]log\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2210
Excludes compilation logging (with the \f[CB]\-XX:+LogCompilation\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2211
option) for all methods except for the specified method.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2212
By default, logging is performed for all compiled methods.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2213
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2214
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2215
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2216
.B \f[CB]option\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2217
Passes a JIT compilation option to the specified method in place of the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2218
last argument (\f[CB]option\f[R]).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2219
The compilation option is set at the end, after the method name.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2220
For example, to enable the \f[CB]BlockLayoutByFrequency\f[R] option for
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2221
the \f[CB]append()\f[R] method of the \f[CB]StringBuffer\f[R] class, use the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2222
following:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2223
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2224
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2225
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2226
\f[CB]\-XX:CompileCommand=option,java/lang/StringBuffer.append,BlockLayoutByFrequency\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2227
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2228
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2229
You can specify multiple compilation options, separated by commas or
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2230
spaces.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2231
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2232
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2233
.B \f[CB]print\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2234
Prints generated assembler code after compilation of the specified
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2235
method.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2236
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2237
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2238
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2239
.B \f[CB]quiet\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2240
Instructs not to print the compile commands.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2241
By default, the commands that you specify with the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2242
\f[CB]\-XX:CompileCommand\f[R] option are printed; for example, if you
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2243
exclude from compilation the \f[CB]indexOf()\f[R] method of the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2244
\f[CB]String\f[R] class, then the following is printed to standard output:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2245
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2246
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2247
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2248
\f[CB]CompilerOracle:\ exclude\ java/lang/String.indexOf\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2249
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2250
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2251
You can suppress this by specifying the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2252
\f[CB]\-XX:CompileCommand=quiet\f[R] option before other
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2253
\f[CB]\-XX:CompileCommand\f[R] options.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2254
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2255
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2256
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2257
.B \f[CB]\-XX:CompileCommandFile=\f[R]\f[I]filename\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2258
Sets the file from which JIT compiler commands are read.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2259
By default, the \f[CB]\&.hotspot_compiler\f[R] file is used to store
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2260
commands performed by the JIT compiler.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2261
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2262
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2263
Each line in the command file represents a command, a class name, and a
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2264
method name for which the command is used.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2265
For example, this line prints assembly code for the \f[CB]toString()\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2266
method of the \f[CB]String\f[R] class:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2267
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2268
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2269
\f[CB]print\ java/lang/String\ toString\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2270
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2271
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2272
If you\[aq]re using commands for the JIT compiler to perform on methods,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2273
then see the \f[CB]\-XX:CompileCommand\f[R] option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2274
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2275
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2276
.B \f[CB]\-XX:CompilerDirectivesFile=\f[R]\f[I]file\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2277
Adds directives from a file to the directives stack when a program
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2278
starts.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2279
See \f[B]Compiler Control\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2280
[https://docs.oracle.com/en/java/javase/12/vm/compiler\-control1.html#GUID\-94AD8194\-786A\-4F19\-BFFF\-278F8E237F3A].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2281
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2282
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2283
The \f[CB]\-XX:CompilerDirectivesFile\f[R] option has to be used together
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2284
with the \f[CB]\-XX:UnlockDiagnosticVMOptions\f[R] option that unlocks
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2285
diagnostic JVM options.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2286
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2287
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2288
.B \f[CB]\-XX:+CompilerDirectivesPrint\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2289
Prints the directives stack when the program starts or when a new
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2290
directive is added.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2291
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2292
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2293
The \f[CB]\-XX:+CompilerDirectivesPrint\f[R] option has to be used
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2294
together with the \f[CB]\-XX:UnlockDiagnosticVMOptions\f[R] option that
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2295
unlocks diagnostic JVM options.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2296
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2297
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2298
.B \f[CB]\-XX:CompileOnly=\f[R]\f[I]methods\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2299
Sets the list of methods (separated by commas) to which compilation
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2300
should be restricted.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2301
Only the specified methods are compiled.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2302
Specify each method with the full class name (including the packages and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2303
subpackages).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2304
For example, to compile only the \f[CB]length()\f[R] method of the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2305
\f[CB]String\f[R] class and the \f[CB]size()\f[R] method of the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2306
\f[CB]List\f[R] class, use the following:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2307
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2308
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2309
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2310
\f[CB]\-XX:CompileOnly=java/lang/String.length,java/util/List.size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2311
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2312
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2313
Note that the full class name is specified, including all packages and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2314
subpackages separated by a slash (\f[CB]/\f[R]).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2315
For easier cut and paste operations, it\[aq]s also possible to use the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2316
method name format produced by the \f[CB]\-XX:+PrintCompilation\f[R] and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2317
\f[CB]\-XX:+LogCompilation\f[R] options:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2318
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2319
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2320
\f[CB]\-XX:CompileOnly=java.lang.String::length,java.util.List::size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2321
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2322
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2323
Although wildcards aren\[aq]t supported, you can specify only the class
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2324
or package name to compile all methods in that class or package, as well
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2325
as specify just the method to compile methods with this name in any
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2326
class:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2327
.IP
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  2328
.nf
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2329
\f[CB]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2330
\-XX:CompileOnly=java/lang/String
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2331
\-XX:CompileOnly=java/lang
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2332
\-XX:CompileOnly=.length
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2333
\f[R]
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  2334
.fi
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2335
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2336
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2337
.B \f[CB]\-XX:CompileThreshold=\f[R]\f[I]invocations\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2338
Sets the number of interpreted method invocations before compilation.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2339
By default, in the server JVM, the JIT compiler performs 10,000
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2340
interpreted method invocations to gather information for efficient
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2341
compilation.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2342
For the client JVM, the default setting is 1,500 invocations.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2343
This option is ignored when tiered compilation is enabled; see the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2344
option \f[CB]\-XX:\-TieredCompilation\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2345
The following example shows how to set the number of interpreted method
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2346
invocations to 5,000:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2347
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2348
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2349
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2350
\f[CB]\-XX:CompileThreshold=5000\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2351
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2352
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2353
You can completely disable interpretation of Java methods before
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2354
compilation by specifying the \f[CB]\-Xcomp\f[R] option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2355
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2356
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2357
.B \f[CB]\-XX:CompileThresholdScaling=\f[R]\f[I]scale\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2358
Provides unified control of first compilation.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2359
This option controls when methods are first compiled for both the tiered
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2360
and the nontiered modes of operation.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2361
The \f[CB]CompileThresholdScaling\f[R] option has an integer value between
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2362
0 and +Inf and scales the thresholds corresponding to the current mode
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2363
of operation (both tiered and nontiered).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2364
Setting \f[CB]CompileThresholdScaling\f[R] to a value less than 1.0
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2365
results in earlier compilation while values greater than 1.0 delay
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2366
compilation.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2367
Setting \f[CB]CompileThresholdScaling\f[R] to 0 is equivalent to disabling
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2368
compilation.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2369
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2370
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2371
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2372
.B \f[CB]\-XX:+DoEscapeAnalysis\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2373
Enables the use of escape analysis.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2374
This option is enabled by default.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2375
To disable the use of escape analysis, specify
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2376
\f[CB]\-XX:\-DoEscapeAnalysis\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2377
Only the Java HotSpot Server VM supports this option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2378
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2379
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2380
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2381
.B \f[CB]\-XX:InitialCodeCacheSize=\f[R]\f[I]size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2382
Sets the initial code cache size (in bytes).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2383
Append the letter \f[CB]k\f[R] or \f[CB]K\f[R] to indicate kilobytes,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2384
\f[CB]m\f[R] or \f[CB]M\f[R] to indicate megabytes, or \f[CB]g\f[R] or
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2385
\f[CB]G\f[R] to indicate gigabytes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2386
The default value is set to 500 KB.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2387
The initial code cache size shouldn\[aq]t be less than the system\[aq]s
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2388
minimal memory page size.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2389
The following example shows how to set the initial code cache size to 32
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2390
KB:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2391
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2392
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2393
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2394
\f[CB]\-XX:InitialCodeCacheSize=32k\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2395
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2396
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2397
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2398
.B \f[CB]\-XX:+Inline\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2399
Enables method inlining.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2400
This option is enabled by default to increase performance.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2401
To disable method inlining, specify \f[CB]\-XX:\-Inline\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2402
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2403
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2404
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2405
.B \f[CB]\-XX:InlineSmallCode=\f[R]\f[I]size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2406
Sets the maximum code size (in bytes) for compiled methods that should
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2407
be inlined.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2408
Append the letter \f[CB]k\f[R] or \f[CB]K\f[R] to indicate kilobytes,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2409
\f[CB]m\f[R] or \f[CB]M\f[R] to indicate megabytes, or \f[CB]g\f[R] or
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2410
\f[CB]G\f[R] to indicate gigabytes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2411
Only compiled methods with the size smaller than the specified size is
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2412
inlined.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2413
By default, the maximum code size is set to 1000 bytes:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2414
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2415
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2416
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2417
\f[CB]\-XX:InlineSmallCode=1000\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2418
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2419
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2420
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2421
.B \f[CB]\-XX:+LogCompilation\f[R]
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  2422
Enables logging of compilation activity to a file named
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2423
\f[CB]hotspot.log\f[R] in the current working directory.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2424
You can specify a different log file path and name using the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2425
\f[CB]\-XX:LogFile\f[R] option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2426
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2427
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2428
By default, this option is disabled and compilation activity isn\[aq]t
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2429
logged.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2430
The \f[CB]\-XX:+LogCompilation\f[R] option has to be used together with
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2431
the \f[CB]\-XX:UnlockDiagnosticVMOptions\f[R] option that unlocks
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2432
diagnostic JVM options.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2433
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2434
You can enable verbose diagnostic output with a message printed to the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2435
console every time a method is compiled by using the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2436
\f[CB]\-XX:+PrintCompilation\f[R] option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2437
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2438
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2439
.B \f[CB]\-XX:MaxInlineSize=\f[R]\f[I]size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2440
Sets the maximum bytecode size (in bytes) of a method to be inlined.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2441
Append the letter \f[CB]k\f[R] or \f[CB]K\f[R] to indicate kilobytes,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2442
\f[CB]m\f[R] or \f[CB]M\f[R] to indicate megabytes, or \f[CB]g\f[R] or
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2443
\f[CB]G\f[R] to indicate gigabytes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2444
By default, the maximum bytecode size is set to 35 bytes:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2445
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2446
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2447
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2448
\f[CB]\-XX:MaxInlineSize=35\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2449
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2450
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2451
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2452
.B \f[CB]\-XX:MaxNodeLimit=\f[R]\f[I]nodes\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2453
Sets the maximum number of nodes to be used during single method
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2454
compilation.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2455
By default, the maximum number of nodes is set to 65,000:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2456
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2457
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2458
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2459
\f[CB]\-XX:MaxNodeLimit=65000\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2460
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2461
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2462
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2463
.B \f[CB]\-XX:NonNMethodCodeHeapSize=\f[R]\f[I]size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2464
Sets the size in bytes of the code segment containing nonmethod code.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2465
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2466
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2467
A nonmethod code segment containing nonmethod code, such as compiler
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2468
buffers and the bytecode interpreter.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2469
This code type stays in the code cache forever.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2470
This flag is used only if \f[CB]\-XX:SegmentedCodeCache\f[R] is enabled.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2471
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2472
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2473
.B \f[CB]\-XX:NonProfiledCodeHeapSize=\f[R]\f[I]size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2474
Sets the size in bytes of the code segment containing nonprofiled
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2475
methods.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2476
This flag is used only if \f[CB]\-XX:SegmentedCodeCache\f[R] is enabled.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2477
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2478
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2479
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2480
.B \f[CB]\-XX:MaxTrivialSize=\f[R]\f[I]size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2481
Sets the maximum bytecode size (in bytes) of a trivial method to be
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2482
inlined.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2483
Append the letter \f[CB]k\f[R] or \f[CB]K\f[R] to indicate kilobytes,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2484
\f[CB]m\f[R] or \f[CB]M\f[R] to indicate megabytes, or \f[CB]g\f[R] or
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2485
\f[CB]G\f[R] to indicate gigabytes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2486
By default, the maximum bytecode size of a trivial method is set to 6
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2487
bytes:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2488
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2489
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2490
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2491
\f[CB]\-XX:MaxTrivialSize=6\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2492
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2493
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2494
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2495
.B \f[CB]\-XX:+OptimizeStringConcat\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2496
Enables the optimization of \f[CB]String\f[R] concatenation operations.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2497
This option is enabled by default.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2498
To disable the optimization of \f[CB]String\f[R] concatenation operations,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2499
specify \f[CB]\-XX:\-OptimizeStringConcat\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2500
Only the Java HotSpot Server VM supports this option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2501
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2502
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2503
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2504
.B \f[CB]\-XX:+PrintAssembly\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2505
Enables printing of assembly code for bytecoded and native methods by
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2506
using the external \f[CB]hsdis\-<arch>.so\f[R] or \f[CB]\&.dll\f[R] library.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2507
For 64\-bit VM on Windows, it\[aq]s \f[CB]hsdis\-amd64.dll\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2508
This lets you to see the generated code, which may help you to diagnose
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2509
performance issues.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2510
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2511
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2512
By default, this option is disabled and assembly code isn\[aq]t printed.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2513
The \f[CB]\-XX:+PrintAssembly\f[R] option has to be used together with the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2514
\f[CB]\-XX:UnlockDiagnosticVMOptions\f[R] option that unlocks diagnostic
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2515
JVM options.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2516
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2517
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2518
.B \f[CB]\-XX:ProfiledCodeHeapSize=\f[R]\f[I]size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2519
Sets the size in bytes of the code segment containing profiled methods.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2520
This flag is used only if \f[CB]\-XX:SegmentedCodeCache\f[R] is enabled.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2521
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2522
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2523
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2524
.B \f[CB]\-XX:+PrintCompilation\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2525
Enables verbose diagnostic output from the JVM by printing a message to
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2526
the console every time a method is compiled.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2527
This lets you to see which methods actually get compiled.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2528
By default, this option is disabled and diagnostic output isn\[aq]t
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2529
printed.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2530
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2531
.PP
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  2532
You can also log compilation activity to a file by using the
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2533
\f[CB]\-XX:+LogCompilation\f[R] option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2534
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2535
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2536
.B \f[CB]\-XX:+PrintInlining\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2537
Enables printing of inlining decisions.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2538
This let\[aq]s you see which methods are getting inlined.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2539
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2540
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2541
By default, this option is disabled and inlining information isn\[aq]t
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2542
printed.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2543
The \f[CB]\-XX:+PrintInlining\f[R] option has to be used together with the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2544
\f[CB]\-XX:+UnlockDiagnosticVMOptions\f[R] option that unlocks diagnostic
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2545
JVM options.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2546
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2547
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2548
.B \f[CB]\-XX:ReservedCodeCacheSize=\f[R]\f[I]size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2549
Sets the maximum code cache size (in bytes) for JIT\-compiled code.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2550
Append the letter \f[CB]k\f[R] or \f[CB]K\f[R] to indicate kilobytes,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2551
\f[CB]m\f[R] or \f[CB]M\f[R] to indicate megabytes, or \f[CB]g\f[R] or
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2552
\f[CB]G\f[R] to indicate gigabytes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2553
The default maximum code cache size is 240 MB; if you disable tiered
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2554
compilation with the option \f[CB]\-XX:\-TieredCompilation\f[R], then the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2555
default size is 48 MB.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2556
This option has a limit of 2 GB; otherwise, an error is generated.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2557
The maximum code cache size shouldn\[aq]t be less than the initial code
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2558
cache size; see the option \f[CB]\-XX:InitialCodeCacheSize\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2559
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2560
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2561
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2562
.B \f[CB]\-XX:RTMAbortRatio=\f[R]\f[I]abort_ratio\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2563
Specifies the RTM abort ratio is specified as a percentage (%) of all
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2564
executed RTM transactions.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2565
If a number of aborted transactions becomes greater than this ratio,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2566
then the compiled code is deoptimized.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2567
This ratio is used when the \f[CB]\-XX:+UseRTMDeopt\f[R] option is
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2568
enabled.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2569
The default value of this option is 50.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2570
This means that the compiled code is deoptimized if 50% of all
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2571
transactions are aborted.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2572
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2573
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2574
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2575
.B \f[CB]\-XX:RTMRetryCount=\f[R]\f[I]number_of_retries\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2576
Specifies the number of times that the RTM locking code is retried, when
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2577
it is aborted or busy, before falling back to the normal locking
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2578
mechanism.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2579
The default value for this option is 5.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2580
The \f[CB]\-XX:UseRTMLocking\f[R] option must be enabled.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2581
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2582
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2583
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2584
.B \f[CB]\-XX:+SegmentedCodeCache\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2585
Enables segmentation of the code cache.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2586
Without the \f[CB]\-XX:+SegmentedCodeCache\f[R], the code cache consists
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2587
of one large segment.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2588
With \f[CB]\-XX:+SegmentedCodeCache\f[R], we have separate segments for
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2589
nonmethod, profiled method, and nonprofiled method code.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2590
These segments aren\[aq]t resized at runtime.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2591
The feature is enabled by default if tiered compilation is enabled
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2592
(\f[CB]\-XX:+TieredCompilation\f[R] ) and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2593
\f[CB]\-XX:ReservedCodeCacheSize\f[R] >= 240 MB.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2594
The advantages are better control of the memory footprint, reduced code
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2595
fragmentation, and better iTLB/iCache behavior due to improved locality.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2596
iTLB/iCache is a CPU\-specific term meaning Instruction Translation
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2597
Lookaside Buffer (ITLB).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2598
ICache is an instruction cache in theCPU.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2599
The implementation of the code cache can be found in the file:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2600
\f[CB]/share/vm/code/codeCache.cpp\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2601
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2602
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2603
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2604
.B \f[CB]\-XX:StartAggressiveSweepingAt=\f[R]\f[I]percent\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2605
Forces stack scanning of active methods to aggressively remove unused
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2606
code when only the given percentage of the code cache is free.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2607
The default value is 10%.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2608
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2609
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2610
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2611
.B \f[CB]\-XX:\-TieredCompilation\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2612
Disables the use of tiered compilation.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2613
By default, this option is enabled.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2614
Only the Java HotSpot Server VM supports this option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2615
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2616
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2617
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2618
.B \f[CB]\-XX:+UseAES\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2619
Enables hardware\-based AES intrinsics for Intel, AMD, and SPARC
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2620
hardware.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2621
Intel Westmere (2010 and newer), AMD Bulldozer (2011 and newer), and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2622
SPARC (T4 and newer) are the supported hardware.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2623
The \f[CB]\-XX:+UseAES\f[R] is used in conjunction with UseAESIntrinsics.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2624
Flags that control intrinsics now require the option
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2625
\f[CB]\-XX:+UnlockDiagnosticVMOptions\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2626
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2627
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2628
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2629
.B \f[CB]\-XX:+UseAESIntrinsics\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2630
Enables \f[CB]\-XX:+UseAES\f[R] and \f[CB]\-XX:+UseAESIntrinsics\f[R] flags
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2631
by default and are supported only for the Java HotSpot Server VM.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2632
To disable hardware\-based AES intrinsics, specify
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2633
\f[CB]\-XX:\-UseAES\ \-XX:\-UseAESIntrinsics\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2634
For example, to enable hardware AES, use the following flags:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2635
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2636
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2637
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2638
\f[CB]\-XX:+UseAES\ \-XX:+UseAESIntrinsics\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2639
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2640
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2641
Flags that control intrinsics now require the option
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2642
\f[CB]\-XX:+UnlockDiagnosticVMOptions\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2643
To support UseAES and UseAESIntrinsics flags, use the \f[CB]\-server\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2644
option to select the Java HotSpot Server VM.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2645
These flags aren\[aq]t supported on Client VM.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2646
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2647
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2648
.B \f[CB]\-XX:+UseCMoveUnconditionally\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2649
Generates CMove (scalar and vector) instructions regardless of
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2650
profitability analysis.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2651
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2652
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2653
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2654
.B \f[CB]\-XX:+UseCodeCacheFlushing\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2655
Enables flushing of the code cache before shutting down the compiler.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2656
This option is enabled by default.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2657
To disable flushing of the code cache before shutting down the compiler,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2658
specify \f[CB]\-XX:\-UseCodeCacheFlushing\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2659
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2660
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2661
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2662
.B \f[CB]\-XX:+UseCondCardMark\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2663
Enables checking if the card is already marked before updating the card
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2664
table.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2665
This option is disabled by default.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2666
It should be used only on machines with multiple sockets, where it
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2667
increases the performance of Java applications that rely on concurrent
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2668
operations.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2669
Only the Java HotSpot Server VM supports this option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2670
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2671
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2672
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2673
.B \f[CB]\-XX:+UseCountedLoopSafepoints\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2674
Keeps safepoints in counted loops.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2675
Its default value is false.\ 
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2676
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2677
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2678
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2679
.B \f[CB]\-XX:+UseFMA\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2680
Enables hardware\-based FMA intrinsics for hardware where FMA
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2681
instructions are available (such as, Intel, SPARC, and ARM64).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2682
FMA intrinsics are generated for the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2683
\f[CB]java.lang.Math.fma(\f[R]\f[I]a\f[R]\f[CB],\f[R] \f[I]b\f[R]\f[CB],\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2684
\f[I]c\f[R]\f[CB])\f[R] methods that calculate the value of \f[CB](\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2685
\f[I]a\f[R] \f[CB]*\f[R] \f[I]b\f[R] \f[CB]+\f[R] \f[I]c\f[R] \f[CB])\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2686
expressions.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2687
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2688
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2689
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2690
.B \f[CB]\-XX:+UseRTMDeopt\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2691
Autotunes RTM locking depending on the abort ratio.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2692
This ratio is specified by the \f[CB]\-XX:RTMAbortRatio\f[R] option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2693
If the number of aborted transactions exceeds the abort ratio, then the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2694
method containing the lock is deoptimized and recompiled with all locks
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2695
as normal locks.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2696
This option is disabled by default.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2697
The \f[CB]\-XX:+UseRTMLocking\f[R] option must be enabled.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2698
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2699
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2700
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2701
.B \f[CB]\-XX:+UseRTMLocking\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2702
Generates Restricted Transactional Memory (RTM) locking code for all
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2703
inflated locks, with the normal locking mechanism as the fallback
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2704
handler.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2705
This option is disabled by default.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2706
Options related to RTM are available only for the Java HotSpot Server VM
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2707
on x86 CPUs that support Transactional Synchronization Extensions (TSX).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2708
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2709
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2710
RTM is part of Intel\[aq]s TSX, which is an x86 instruction set
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2711
extension and facilitates the creation of multithreaded applications.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2712
RTM introduces the new instructions \f[CB]XBEGIN\f[R], \f[CB]XABORT\f[R],
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2713
\f[CB]XEND\f[R], and \f[CB]XTEST\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2714
The \f[CB]XBEGIN\f[R] and \f[CB]XEND\f[R] instructions enclose a set of
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2715
instructions to run as a transaction.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2716
If no conflict is found when running the transaction, then the memory
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2717
and register modifications are committed together at the \f[CB]XEND\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2718
instruction.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2719
The \f[CB]XABORT\f[R] instruction can be used to explicitly abort a
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2720
transaction and the \f[CB]XEND\f[R] instruction checks if a set of
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2721
instructions is being run in a transaction.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2722
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2723
A lock on a transaction is inflated when another thread tries to access
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2724
the same transaction, thereby blocking the thread that didn\[aq]t
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2725
originally request access to the transaction.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2726
RTM requires that a fallback set of operations be specified in case a
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2727
transaction aborts or fails.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2728
An RTM lock is a lock that has been delegated to the TSX\[aq]s system.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2729
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2730
RTM improves performance for highly contended locks with low conflict in
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2731
a critical region (which is code that must not be accessed by more than
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2732
one thread concurrently).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2733
RTM also improves the performance of coarse\-grain locking, which
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2734
typically doesn\[aq]t perform well in multithreaded applications.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2735
(Coarse\-grain locking is the strategy of holding locks for long periods
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2736
to minimize the overhead of taking and releasing locks, while
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2737
fine\-grained locking is the strategy of trying to achieve maximum
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2738
parallelism by locking only when necessary and unlocking as soon as
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2739
possible.) Also, for lightly contended locks that are used by different
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2740
threads, RTM can reduce false cache line sharing, also known as cache
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2741
line ping\-pong.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2742
This occurs when multiple threads from different processors are
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2743
accessing different resources, but the resources share the same cache
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2744
line.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2745
As a result, the processors repeatedly invalidate the cache lines of
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2746
other processors, which forces them to read from main memory instead of
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2747
their cache.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2748
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2749
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2750
.B \f[CB]\-XX:+UseSHA\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2751
Enables hardware\-based intrinsics for SHA crypto hash functions for
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2752
SPARC hardware.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2753
The \f[CB]UseSHA\f[R] option is used in conjunction with the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2754
\f[CB]UseSHA1Intrinsics\f[R], \f[CB]UseSHA256Intrinsics\f[R], and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2755
\f[CB]UseSHA512Intrinsics\f[R] options.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2756
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2757
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2758
The \f[CB]UseSHA\f[R] and \f[CB]UseSHA*Intrinsics\f[R] flags are enabled by
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2759
default, and are supported only for Java HotSpot Server VM 64\-bit on
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2760
SPARC T4 and newer.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2761
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2762
This feature is applicable only when using the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2763
\f[CB]sun.security.provider.Sun\f[R] provider for SHA operations.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2764
Flags that control intrinsics now require the option
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2765
\f[CB]\-XX:+UnlockDiagnosticVMOptions\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2766
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2767
To disable all hardware\-based SHA intrinsics, specify the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2768
\f[CB]\-XX:\-UseSHA\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2769
To disable only a particular SHA intrinsic, use the appropriate
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2770
corresponding option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2771
For example: \f[CB]\-XX:\-UseSHA256Intrinsics\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2772
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2773
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2774
.B \f[CB]\-XX:+UseSHA1Intrinsics\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2775
Enables intrinsics for SHA\-1 crypto hash function.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2776
Flags that control intrinsics now require the option
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2777
\f[CB]\-XX:+UnlockDiagnosticVMOptions\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2778
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2779
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2780
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2781
.B \f[CB]\-XX:+UseSHA256Intrinsics\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2782
Enables intrinsics for SHA\-224 and SHA\-256 crypto hash functions.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2783
Flags that control intrinsics now require the option
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2784
\f[CB]\-XX:+UnlockDiagnosticVMOptions\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2785
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2786
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2787
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2788
.B \f[CB]\-XX:+UseSHA512Intrinsics\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2789
Enables intrinsics for SHA\-384 and SHA\-512 crypto hash functions.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2790
Flags that control intrinsics now require the option
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2791
\f[CB]\-XX:+UnlockDiagnosticVMOptions\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2792
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2793
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2794
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2795
.B \f[CB]\-XX:+UseSuperWord\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2796
Enables the transformation of scalar operations into superword
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2797
operations.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2798
Superword is a vectorization optimization.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2799
This option is enabled by default.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2800
To disable the transformation of scalar operations into superword
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2801
operations, specify \f[CB]\-XX:\-UseSuperWord\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2802
Only the Java HotSpot Server VM supports this option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2803
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2804
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2805
.SH ADVANCED SERVICEABILITY OPTIONS FOR JAVA
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2806
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2807
These \f[CB]java\f[R] options provide the ability to gather system
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2808
information and perform extensive debugging.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2809
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2810
.B \f[CB]\-XX:+DisableAttachMechanism\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2811
Disables the mechanism that lets tools attach to the JVM.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2812
By default, this option is disabled, meaning that the attach mechanism
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2813
is enabled and you can use diagnostics and troubleshooting tools such as
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2814
\f[CB]jcmd\f[R], \f[CB]jstack\f[R], \f[CB]jmap\f[R], and \f[CB]jinfo\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2815
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2816
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2817
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2818
\f[B]Note:\f[R] The tools such as \f[B]jcmd\f[R], \f[B]jinfo\f[R],
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2819
\f[B]jmap\f[R], and \f[B]jstack\f[R] shipped with the JDK aren\[aq]t
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2820
supported when using the tools from one JDK version to troubleshoot a
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2821
different JDK version.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2822
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2823
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2824
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2825
.B \f[CB]\-XX:+ExtendedDTraceProbes\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2826
\f[B]Oracle Solaris, Linux, and macOS:\f[R] Enables additional
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2827
\f[CB]dtrace\f[R] tool probes that affect the performance.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2828
By default, this option is disabled and \f[CB]dtrace\f[R] performs only
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2829
standard probes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2830
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2831
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2832
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2833
.B \f[CB]\-XX:+HeapDumpOnOutOfMemoryError\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2834
Enables the dumping of the Java heap to a file in the current directory
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2835
by using the heap profiler (HPROF) when a
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2836
\f[CB]java.lang.OutOfMemoryError\f[R] exception is thrown.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2837
You can explicitly set the heap dump file path and name using the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2838
\f[CB]\-XX:HeapDumpPath\f[R] option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2839
By default, this option is disabled and the heap isn\[aq]t dumped when
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2840
an \f[CB]OutOfMemoryError\f[R] exception is thrown.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2841
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2842
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2843
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2844
.B \f[CB]\-XX:HeapDumpPath=path\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2845
Sets the path and file name for writing the heap dump provided by the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2846
heap profiler (HPROF) when the \f[CB]\-XX:+HeapDumpOnOutOfMemoryError\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2847
option is set.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2848
By default, the file is created in the current working directory, and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2849
it\[aq]s named \f[CB]java_pid<pid>.hprof\f[R] where \f[CB]<pid>\f[R] is the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2850
identifier of the process that caused the error.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2851
The following example shows how to set the default file explicitly
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2852
(\f[CB]%p\f[R] represents the current process identifier):
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2853
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2854
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2855
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2856
\f[CB]\-XX:HeapDumpPath=./java_pid%p.hprof\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2857
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2858
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2859
\f[B]Oracle Solaris, Linux, and macOS:\f[R] The following example shows
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2860
how to set the heap dump file to
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2861
\f[CB]/var/log/java/java_heapdump.hprof\f[R]:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2862
.RS 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2863
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2864
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2865
\f[CB]\-XX:HeapDumpPath=/var/log/java/java_heapdump.hprof\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2866
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2867
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2868
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2869
\f[B]Windows:\f[R] The following example shows how to set the heap dump
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2870
file to \f[CB]C:/log/java/java_heapdump.log\f[R]:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2871
.RS 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2872
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2873
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2874
\f[CB]\-XX:HeapDumpPath=C:/log/java/java_heapdump.log\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2875
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2876
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2877
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2878
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2879
.B \f[CB]\-XX:LogFile=\f[R]\f[I]path\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2880
Sets the path and file name to where log data is written.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2881
By default, the file is created in the current working directory, and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2882
it\[aq]s named \f[CB]hotspot.log\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2883
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2884
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2885
\f[B]Oracle Solaris, Linux, and macOS:\f[R] The following example shows
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2886
how to set the log file to \f[CB]/var/log/java/hotspot.log\f[R]:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2887
.RS 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2888
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2889
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2890
\f[CB]\-XX:LogFile=/var/log/java/hotspot.log\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2891
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2892
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2893
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2894
\f[B]Windows:\f[R] The following example shows how to set the log file to
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2895
\f[CB]C:/log/java/hotspot.log\f[R]:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2896
.RS 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2897
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2898
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2899
\f[CB]\-XX:LogFile=C:/log/java/hotspot.log\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2900
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2901
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2902
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2903
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2904
.B \f[CB]\-XX:+PrintClassHistogram\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2905
Enables printing of a class instance histogram after one of the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2906
following events:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2907
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2908
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2909
\f[B]Oracle Solaris, Linux, and macOS:\f[R] \f[CB]Control+Break\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2910
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2911
\f[B]Windows:\f[R] \f[CB]Control+C\f[R] (\f[CB]SIGTERM\f[R])
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2912
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2913
By default, this option is disabled.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2914
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2915
Setting this option is equivalent to running the \f[CB]jmap\ \-histo\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2916
command, or the \f[CB]jcmd\f[R] \f[I]pid\f[R] \f[CB]GC.class_histogram\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2917
command, where \f[I]pid\f[R] is the current Java process identifier.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2918
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2919
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2920
.B \f[CB]\-XX:+PrintConcurrentLocks\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2921
Enables printing of \f[CB]java.util.concurrent\f[R] locks after one of the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2922
following events:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2923
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2924
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2925
\f[B]Oracle Solaris, Linux, and macOS:\f[R] \f[CB]Control+Break\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2926
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2927
\f[B]Windows:\f[R] \f[CB]Control+C\f[R] (\f[CB]SIGTERM\f[R])
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2928
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2929
By default, this option is disabled.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2930
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2931
Setting this option is equivalent to running the \f[CB]jstack\ \-l\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2932
command or the \f[CB]jcmd\f[R] \f[I]pid\f[R] \f[CB]Thread.print\ \-l\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2933
command, where \f[I]pid\f[R] is the current Java process identifier.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2934
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2935
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2936
.B \f[CB]\-XX:+PrintFlagsRanges\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2937
Prints the range specified and allows automatic testing of the values.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2938
See \f[B]Validate Java Virtual Machine Flag Arguments\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2939
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2940
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2941
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2942
.B \f[CB]\-XX:+PerfDataSaveToFile\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2943
If enabled, saves \f[B]jstat\f[R] binary data when the Java application
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2944
exits.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2945
This binary data is saved in a file named
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2946
\f[CB]hsperfdata_\f[R]\f[I]pid\f[R], where \f[I]pid\f[R] is the process
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2947
identifier of the Java application that you ran.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2948
Use the \f[CB]jstat\f[R] command to display the performance data contained
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2949
in this file as follows:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2950
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2951
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2952
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2953
\f[CB]jstat\ \-class\ file:///\f[R]\f[I]path\f[R]\f[CB]/hsperfdata_\f[R]\f[I]pid\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2954
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2955
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2956
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2957
\f[CB]jstat\ \-gc\ file:///\f[R]\f[I]path\f[R]\f[CB]/hsperfdata_\f[R]\f[I]pid\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2958
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2959
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2960
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2961
.B \f[CB]\-XX:+UsePerfData\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2962
Enables the \f[CB]perfdata\f[R] feature.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2963
This option is enabled by default to allow JVM monitoring and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2964
performance testing.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2965
Disabling it suppresses the creation of the \f[CB]hsperfdata_userid\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2966
directories.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2967
To disable the \f[CB]perfdata\f[R] feature, specify
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2968
\f[CB]\-XX:\-UsePerfData\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2969
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2970
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2971
.SH ADVANCED GARBAGE COLLECTION OPTIONS FOR JAVA
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2972
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2973
These \f[CB]java\f[R] options control how garbage collection (GC) is
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2974
performed by the Java HotSpot VM.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2975
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2976
.B \f[CB]\-XX:+AggressiveHeap\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2977
Enables Java heap optimization.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2978
This sets various parameters to be optimal for long\-running jobs with
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2979
intensive memory allocation, based on the configuration of the computer
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2980
(RAM and CPU).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2981
By default, the option is disabled and the heap isn't optimized.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2982
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2983
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2984
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2985
.B \f[CB]\-XX:+AlwaysPreTouch\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2986
Enables touching of every page on the Java heap during JVM
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2987
initialization.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2988
This gets all pages into memory before entering the \f[CB]main()\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2989
method.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2990
The option can be used in testing to simulate a long\-running system
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2991
with all virtual memory mapped to physical memory.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2992
By default, this option is disabled and all pages are committed as JVM
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2993
heap space fills.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2994
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2995
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2996
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2997
.B \f[CB]\-XX:+CMSClassUnloadingEnabled\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2998
Enables class unloading when using the concurrent mark\-sweep (CMS)
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2999
garbage collector.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3000
This option is enabled by default.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3001
To disable class unloading for the CMS garbage collector, specify
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3002
\f[CB]\-XX:\-CMSClassUnloadingEnabled\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3003
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3004
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3005
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3006
.B \f[CB]\-XX:CMSExpAvgFactor=\f[R]\f[I]percent\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3007
Sets the percentage of time (0 to 100) used to weight the current sample
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3008
when computing exponential averages for the concurrent collection
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3009
statistics.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3010
By default, the exponential averages factor is set to 25%.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3011
The following example shows how to set the factor to 15%:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3012
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3013
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3014
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3015
\f[CB]\-XX:CMSExpAvgFactor=15\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3016
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3017
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3018
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3019
.B \f[CB]\-XX:CMSInitiatingOccupancyFraction=\f[R]\f[I]percent\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3020
Sets the percentage of the old generation occupancy (0 to 100) at which
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3021
to start a CMS collection cycle.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3022
The default value is set to \-1.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3023
Any negative value (including the default) implies that the option
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3024
\f[CB]\-XX:CMSTriggerRatio\f[R] is used to define the value of the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3025
initiating occupancy fraction.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3026
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3027
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3028
The following example shows how to set the factor to 20%:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3029
.IP
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  3030
.nf
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3031
\f[CB]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3032
>\ \ \ `\-XX:CMSInitiatingOccupancyFraction=20`
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3033
\f[R]
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  3034
.fi
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3035
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3036
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3037
.B \f[CB]\-XX:CMSIncrementalDutySafetyFactor=\f[R]\f[I]percent\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3038
Sets the percentage (0 to 100) used to add conservatism when computing
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3039
the duty cycle.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3040
The default value is 10.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3041
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3042
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3043
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3044
.B \f[CB]\-XX:+CMSScavengeBeforeRemark\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3045
Enables scavenging attempts before the CMS remark step.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3046
By default, this option is disabled.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3047
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3048
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3049
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3050
.B \f[CB]\-XX:CMSTriggerRatio=percent\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3051
Sets the percentage (0 to 100) of the value specified by the option
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3052
\f[CB]\-XX:MinHeapFreeRatio\f[R] that\[aq]s allocated before a CMS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3053
collection cycle commences.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3054
The default value is set to 80%.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3055
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3056
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3057
The following example shows how to set the occupancy fraction to 75%:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3058
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3059
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3060
\f[CB]\-XX:CMSTriggerRatio=75\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3061
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3062
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3063
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3064
.B \f[CB]\-XX:ConcGCThreads=\f[R]\f[I]threads\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3065
Sets the number of threads used for concurrent GC.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3066
Sets \f[I]\f[CI]threads\f[I]\f[R] to approximately 1/4 of the number of
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3067
parallel garbage collection threads.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3068
The default value depends on the number of CPUs available to the JVM.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3069
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3070
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3071
For example, to set the number of threads for concurrent GC to 2,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3072
specify the following option:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3073
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3074
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3075
\f[CB]\-XX:ConcGCThreads=2\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3076
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3077
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3078
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3079
.B \f[CB]\-XX:+DisableExplicitGC\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3080
Enables the option that disables processing of calls to the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3081
\f[CB]System.gc()\f[R] method.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3082
This option is disabled by default, meaning that calls to
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3083
\f[CB]System.gc()\f[R] are processed.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3084
If processing of calls to \f[CB]System.gc()\f[R] is disabled, then the JVM
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3085
still performs GC when necessary.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3086
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3087
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3088
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3089
.B \f[CB]\-XX:+ExplicitGCInvokesConcurrent\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3090
Enables invoking of concurrent GC by using the \f[CB]System.gc()\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3091
request.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3092
This option is disabled by default and can be enabled only with the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3093
deprecated \f[CB]\-XX:+UseConcMarkSweepGC\f[R] option and the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3094
\f[CB]\-XX:+UseG1GC\f[R] option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3095
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3096
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3097
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3098
.B \f[CB]\-XX:+ExplicitGCInvokesConcurrentAndUnloadsClasses\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3099
Enables invoking of concurrent GC by using the \f[CB]System.gc()\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3100
request and unloading of classes during the concurrent GC cycle.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3101
This option is disabled by default and can be enabled only with the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3102
deprecated \f[CB]\-XX:+UseConcMarkSweepGC\f[R] option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3103
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3104
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3105
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3106
.B \f[CB]\-XX:G1HeapRegionSize=size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3107
Sets the size of the regions into which the Java heap is subdivided when
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3108
using the garbage\-first (G1) collector.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3109
The value is a power of 2 and can range from 1 MB to 32 MB.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3110
The goal is to have around 2048 regions based on the minimum Java heap
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3111
size.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3112
The default region size is determined ergonomically based on the heap
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3113
size.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3114
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3115
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3116
The following example sets the size of the subdivisions to 16 MB:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3117
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3118
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3119
\f[CB]\-XX:G1HeapRegionSize=16m\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3120
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3121
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3122
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3123
.B \f[CB]\-XX:G1HeapWastePercent=\f[R]\f[I]percent\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3124
Sets the percentage of heap that you\[aq]re willing to waste.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3125
The Java HotSpot VM doesn\[aq]t initiate the mixed garbage collection
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3126
cycle when the reclaimable percentage is less than the heap waste
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3127
percentage.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3128
The default is 5 percent.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3129
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3130
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3131
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3132
.B \f[CB]\-XX:G1MaxNewSizePercent=\f[R]\f[I]percent\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3133
Sets the percentage of the heap size to use as the maximum for the young
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3134
generation size.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3135
The default value is 60 percent of your Java heap.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3136
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3137
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3138
This is an experimental flag.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3139
This setting replaces the \f[CB]\-XX:DefaultMaxNewGenPercent\f[R] setting.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3140
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3141
This setting isn\[aq]t available in Java HotSpot VM build 23 or earlier.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3142
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3143
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3144
.B \f[CB]\-XX:G1MixedGCCountTarget=\f[R]\f[I]number\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3145
Sets the target number of mixed garbage collections after a marking
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3146
cycle to collect old regions with at most
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3147
\f[CB]G1MixedGCLIveThresholdPercent\f[R] live data.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3148
The default is 8 mixed garbage collections.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3149
The goal for mixed collections is to be within this target number.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3150
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3151
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3152
This setting isn\[aq]t available in Java HotSpot VM build 23 or earlier.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3153
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3154
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3155
.B \f[CB]\-XX:G1MixedGCLiveThresholdPercent=\f[R]\f[I]percent\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3156
Sets the occupancy threshold for an old region to be included in a mixed
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3157
garbage collection cycle.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3158
The default occupancy is 85 percent.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3159
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3160
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3161
This is an experimental flag.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3162
This setting replaces the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3163
\f[CB]\-XX:G1OldCSetRegionLiveThresholdPercent\f[R] setting.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3164
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3165
This setting isn\[aq]t available in Java HotSpot VM build 23 or earlier.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3166
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3167
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3168
.B \f[CB]\-XX:G1NewSizePercent=\f[R]\f[I]percent\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3169
Sets the percentage of the heap to use as the minimum for the young
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3170
generation size.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3171
The default value is 5 percent of your Java heap.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3172
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3173
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3174
This is an experimental flag.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3175
This setting replaces the \f[CB]\-XX:DefaultMinNewGenPercent\f[R] setting.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3176
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3177
This setting isn\[aq]t available in Java HotSpot VM build 23 or earlier.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3178
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3179
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3180
.B \f[CB]\-XX:G1OldCSetRegionThresholdPercent=\f[R]\f[I]percent\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3181
Sets an upper limit on the number of old regions to be collected during
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3182
a mixed garbage collection cycle.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3183
The default is 10 percent of the Java heap.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3184
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3185
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3186
This setting isn\[aq]t available in Java HotSpot VM build 23 or earlier.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3187
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3188
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3189
.B \f[CB]\-XX:G1ReservePercent=\f[R]\f[I]percent\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3190
Sets the percentage of the heap (0 to 50) that\[aq]s reserved as a false
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3191
ceiling to reduce the possibility of promotion failure for the G1
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3192
collector.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3193
When you increase or decrease the percentage, ensure that you adjust the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3194
total Java heap by the same amount.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3195
By default, this option is set to 10%.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3196
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3197
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3198
The following example sets the reserved heap to 20%:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3199
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3200
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3201
\f[CB]\-XX:G1ReservePercent=20\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3202
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3203
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3204
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3205
.B \f[CB]\-XX:InitialHeapOccupancyPercent=\f[R]\f[I]percent\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3206
Sets the Java heap occupancy threshold that triggers a marking cycle.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3207
The default occupancy is 45 percent of the entire Java heap.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3208
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3209
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3210
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3211
.B \f[CB]\-XX:InitialHeapSize=\f[R]\f[I]size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3212
Sets the initial size (in bytes) of the memory allocation pool.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3213
This value must be either 0, or a multiple of 1024 and greater than 1
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3214
MB.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3215
Append the letter \f[CB]k\f[R] or \f[CB]K\f[R] to indicate kilobytes,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3216
\f[CB]m\f[R] or \f[CB]M\f[R] to indicate megabytes, or \f[CB]g\f[R] or
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3217
\f[CB]G\f[R] to indicate gigabytes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3218
The default value is selected at run time based on the system
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3219
configuration.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3220
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3221
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3222
The following examples show how to set the size of allocated memory to 6
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3223
MB using various units:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3224
.IP
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  3225
.nf
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3226
\f[CB]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3227
\-XX:InitialHeapSize=6291456
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3228
\-XX:InitialHeapSize=6144k
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3229
\-XX:InitialHeapSize=6m
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3230
\f[R]
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  3231
.fi
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3232
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3233
If you set this option to 0, then the initial size is set as the sum of
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3234
the sizes allocated for the old generation and the young generation.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3235
The size of the heap for the young generation can be set using the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3236
\f[CB]\-XX:NewSize\f[R] option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3237
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3238
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3239
.B \f[CB]\-XX:InitialSurvivorRatio=\f[R]\f[I]ratio\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3240
Sets the initial survivor space ratio used by the throughput garbage
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3241
collector (which is enabled by the \f[CB]\-XX:+UseParallelGC\f[R] and/or
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3242
\f[CB]\-XX:+UseParallelOldGC\f[R] options).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3243
Adaptive sizing is enabled by default with the throughput garbage
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3244
collector by using the \f[CB]\-XX:+UseParallelGC\f[R] and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3245
\f[CB]\-XX:+UseParallelOldGC\f[R] options, and the survivor space is
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3246
resized according to the application behavior, starting with the initial
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3247
value.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3248
If adaptive sizing is disabled (using the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3249
\f[CB]\-XX:\-UseAdaptiveSizePolicy\f[R] option), then the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3250
\f[CB]\-XX:SurvivorRatio\f[R] option should be used to set the size of the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3251
survivor space for the entire execution of the application.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3252
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3253
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3254
The following formula can be used to calculate the initial size of
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3255
survivor space (S) based on the size of the young generation (Y), and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3256
the initial survivor space ratio (R):
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3257
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3258
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3259
\f[CB]S=Y/(R+2)\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3260
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3261
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3262
The 2 in the equation denotes two survivor spaces.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3263
The larger the value specified as the initial survivor space ratio, the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3264
smaller the initial survivor space size.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3265
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3266
By default, the initial survivor space ratio is set to 8.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3267
If the default value for the young generation space size is used (2 MB),
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3268
then the initial size of the survivor space is 0.2 MB.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3269
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3270
The following example shows how to set the initial survivor space ratio
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3271
to 4:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3272
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3273
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3274
\f[CB]\-XX:InitialSurvivorRatio=4\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3275
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3276
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3277
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3278
.B \f[CB]\-XX:InitiatingHeapOccupancyPercent=\f[R]\f[I]percent\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3279
Sets the percentage of the heap occupancy (0 to 100) at which to start a
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3280
concurrent GC cycle.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3281
It\[aq]s used by garbage collectors that trigger a concurrent GC cycle
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3282
based on the occupancy of the entire heap, not just one of the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3283
generations (for example, the G1 garbage collector).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3284
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3285
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3286
By default, the initiating value is set to 45%.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3287
A value of 0 implies nonstop GC cycles.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3288
The following example shows how to set the initiating heap occupancy to
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3289
75%:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3290
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3291
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3292
\f[CB]\-XX:InitiatingHeapOccupancyPercent=75\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3293
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3294
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3295
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3296
.B \f[CB]\-XX:MaxGCPauseMillis=\f[R]\f[I]time\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3297
Sets a target for the maximum GC pause time (in milliseconds).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3298
This is a soft goal, and the JVM will make its best effort to achieve
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3299
it.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3300
The specified value doesn\[aq]t adapt to your heap size.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3301
By default, there\[aq]s no maximum pause time value.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3302
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3303
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3304
The following example shows how to set the maximum target pause time to
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3305
500 ms:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3306
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3307
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3308
\f[CB]\-XX:MaxGCPauseMillis=500\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3309
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3310
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3311
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3312
.B \f[CB]\-XX:MaxHeapSize=\f[R]\f[I]size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3313
Sets the maximum size (in byes) of the memory allocation pool.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3314
This value must be a multiple of 1024 and greater than 2 MB.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3315
Append the letter \f[CB]k\f[R] or \f[CB]K\f[R] to indicate kilobytes,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3316
\f[CB]m\f[R] or \f[CB]M\f[R] to indicate megabytes, or \f[CB]g\f[R] or
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3317
\f[CB]G\f[R] to indicate gigabytes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3318
The default value is selected at run time based on the system
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3319
configuration.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3320
For server deployments, the options \f[CB]\-XX:InitialHeapSize\f[R] and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3321
\f[CB]\-XX:MaxHeapSize\f[R] are often set to the same value.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3322
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3323
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3324
The following examples show how to set the maximum allowed size of
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3325
allocated memory to 80 MB using various units:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3326
.IP
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  3327
.nf
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3328
\f[CB]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3329
\-XX:MaxHeapSize=83886080
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3330
\-XX:MaxHeapSize=81920k
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3331
\-XX:MaxHeapSize=80m
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3332
\f[R]
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  3333
.fi
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3334
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3335
On Oracle Solaris 7 and Oracle Solaris 8 SPARC platforms, the upper
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3336
limit for this value is approximately 4,000 MB minus overhead amounts.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3337
On Oracle Solaris 2.6 and x86 platforms, the upper limit is
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3338
approximately 2,000 MB minus overhead amounts.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3339
On Linux platforms, the upper limit is approximately 2,000 MB minus
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3340
overhead amounts.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3341
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3342
The \f[CB]\-XX:MaxHeapSize\f[R] option is equivalent to \f[CB]\-Xmx\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3343
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3344
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3345
.B \f[CB]\-XX:MaxHeapFreeRatio=\f[R]\f[I]percent\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3346
Sets the maximum allowed percentage of free heap space (0 to 100) after
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3347
a GC event.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3348
If free heap space expands above this value, then the heap is shrunk.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3349
By default, this value is set to 70%.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3350
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3351
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3352
Minimize the Java heap size by lowering the values of the parameters
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3353
\f[CB]MaxHeapFreeRatio\f[R] (default value is 70%) and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3354
\f[CB]MinHeapFreeRatio\f[R] (default value is 40%) with the command\-line
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3355
options \f[CB]\-XX:MaxHeapFreeRatio\f[R] and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3356
\f[CB]\-XX:MinHeapFreeRatio\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3357
Lowering \f[CB]MaxHeapFreeRatio\f[R] to as low as 10% and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3358
\f[CB]MinHeapFreeRatio\f[R] to 5% has successfully reduced the heap size
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3359
without too much performance regression; however, results may vary
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3360
greatly depending on your application.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3361
Try different values for these parameters until they\[aq]re as low as
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3362
possible yet still retain acceptable performance.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3363
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3364
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3365
\f[CB]\-XX:MaxHeapFreeRatio=10\ \-XX:MinHeapFreeRatio=5\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3366
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3367
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3368
Customers trying to keep the heap small should also add the option
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3369
\f[CB]\-XX:\-ShrinkHeapInSteps\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3370
See \f[B]Performance Tuning Examples\f[R] for a description of using this
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3371
option to keep the Java heap small by reducing the dynamic footprint for
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3372
embedded applications.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3373
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3374
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3375
.B \f[CB]\-XX:MaxMetaspaceSize=\f[R]\f[I]size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3376
Sets the maximum amount of native memory that can be allocated for class
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3377
metadata.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3378
By default, the size isn\[aq]t limited.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3379
The amount of metadata for an application depends on the application
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3380
itself, other running applications, and the amount of memory available
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3381
on the system.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3382
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3383
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3384
The following example shows how to set the maximum class metadata size
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3385
to 256 MB:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3386
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3387
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3388
\f[CB]\-XX:MaxMetaspaceSize=256m\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3389
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3390
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3391
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3392
.B \f[CB]\-XX:MaxNewSize=\f[R]\f[I]size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3393
Sets the maximum size (in bytes) of the heap for the young generation
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3394
(nursery).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3395
The default value is set ergonomically.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3396
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3397
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3398
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3399
.B \f[CB]\-XX:MaxTenuringThreshold=\f[R]\f[I]threshold\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3400
Sets the maximum tenuring threshold for use in adaptive GC sizing.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3401
The largest value is 15.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3402
The default value is 15 for the parallel (throughput) collector, and 6
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3403
for the CMS collector.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3404
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3405
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3406
The following example shows how to set the maximum tenuring threshold to
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3407
10:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3408
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3409
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3410
\f[CB]\-XX:MaxTenuringThreshold=10\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3411
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3412
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3413
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3414
.B \f[CB]\-XX:MetaspaceSize=\f[R]\f[I]size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3415
Sets the size of the allocated class metadata space that triggers a
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3416
garbage collection the first time it\[aq]s exceeded.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3417
This threshold for a garbage collection is increased or decreased
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3418
depending on the amount of metadata used.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3419
The default size depends on the platform.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3420
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3421
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3422
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3423
.B \f[CB]\-XX:MinHeapFreeRatio=\f[R]\f[I]percent\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3424
Sets the minimum allowed percentage of free heap space (0 to 100) after
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3425
a GC event.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3426
If free heap space falls below this value, then the heap is expanded.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3427
By default, this value is set to 40%.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3428
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3429
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3430
Minimize Java heap size by lowering the values of the parameters
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3431
\f[CB]MaxHeapFreeRatio\f[R] (default value is 70%) and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3432
\f[CB]MinHeapFreeRatio\f[R] (default value is 40%) with the command\-line
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3433
options \f[CB]\-XX:MaxHeapFreeRatio\f[R] and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3434
\f[CB]\-XX:MinHeapFreeRatio\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3435
Lowering \f[CB]MaxHeapFreeRatio\f[R] to as low as 10% and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3436
\f[CB]MinHeapFreeRatio\f[R] to 5% has successfully reduced the heap size
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3437
without too much performance regression; however, results may vary
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3438
greatly depending on your application.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3439
Try different values for these parameters until they\[aq]re as low as
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3440
possible, yet still retain acceptable performance.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3441
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3442
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3443
\f[CB]\-XX:MaxHeapFreeRatio=10\ \-XX:MinHeapFreeRatio=5\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3444
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3445
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3446
Customers trying to keep the heap small should also add the option
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3447
\f[CB]\-XX:\-ShrinkHeapInSteps\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3448
See \f[B]Performance Tuning Examples\f[R] for a description of using this
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3449
option to keep the Java heap small by reducing the dynamic footprint for
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3450
embedded applications.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3451
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3452
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3453
.B \f[CB]\-XX:NewRatio=\f[R]\f[I]ratio\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3454
Sets the ratio between young and old generation sizes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3455
By default, this option is set to 2.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3456
The following example shows how to set the young\-to\-old ratio to 1:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3457
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3458
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3459
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3460
\f[CB]\-XX:NewRatio=1\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3461
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3462
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3463
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3464
.B \f[CB]\-XX:NewSize=\f[R]\f[I]size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3465
Sets the initial size (in bytes) of the heap for the young generation
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3466
(nursery).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3467
Append the letter \f[CB]k\f[R] or \f[CB]K\f[R] to indicate kilobytes,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3468
\f[CB]m\f[R] or \f[CB]M\f[R] to indicate megabytes, or \f[CB]g\f[R] or
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3469
\f[CB]G\f[R] to indicate gigabytes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3470
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3471
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3472
The young generation region of the heap is used for new objects.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3473
GC is performed in this region more often than in other regions.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3474
If the size for the young generation is too low, then a large number of
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3475
minor GCs are performed.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3476
If the size is too high, then only full GCs are performed, which can
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3477
take a long time to complete.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3478
It is recommended that you keep the size for the young generation
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3479
greater than 25% and less than 50% of the overall heap size.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3480
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3481
The following examples show how to set the initial size of the young
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3482
generation to 256 MB using various units:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3483
.IP
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  3484
.nf
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3485
\f[CB]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3486
\-XX:NewSize=256m
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3487
\-XX:NewSize=262144k
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3488
\-XX:NewSize=268435456
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3489
\f[R]
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  3490
.fi
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3491
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3492
The \f[CB]\-XX:NewSize\f[R] option is equivalent to \f[CB]\-Xmn\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3493
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3494
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3495
.B \f[CB]\-XX:ParallelGCThreads=\f[R]\f[I]threads\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3496
Sets the value of the stop\-the\-world (STW) worker threads.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3497
This option sets the value of \f[I]threads\f[R] to the number of logical
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3498
processors.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3499
The value of \f[I]threads\f[R] is the same as the number of logical
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3500
processors up to a value of 8.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3501
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3502
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3503
If there are more than 8 logical processors, then this option sets the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3504
value of \f[I]threads\f[R] to approximately 5/8 of the logical
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3505
processors.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3506
This works in most cases except for larger SPARC systems where the value
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3507
of \f[I]threads\f[R] can be approximately 5/16 of the logical processors.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3508
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3509
The default value depends on the number of CPUs available to the JVM.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3510
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3511
For example, to set the number of threads for parallel GC to 2, specify
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3512
the following option:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3513
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3514
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3515
\f[CB]\-XX:ParallelGCThreads=2\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3516
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3517
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3518
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3519
.B \f[CB]\-XX:+ParallelRefProcEnabled\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3520
Enables parallel reference processing.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3521
By default, this option is disabled.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3522
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3523
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3524
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3525
.B \f[CB]\-XX:+PrintAdaptiveSizePolicy\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3526
Enables printing of information about adaptive\-generation sizing.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3527
By default, this option is disabled.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3528
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3529
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3530
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3531
.B \f[CB]\-XX:+ScavengeBeforeFullGC\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3532
Enables GC of the young generation before each full GC.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3533
This option is enabled by default.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3534
It is recommended that you \f[I]don\[aq]t\f[R] disable it, because
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3535
scavenging the young generation before a full GC can reduce the number
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3536
of objects reachable from the old generation space into the young
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3537
generation space.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3538
To disable GC of the young generation before each full GC, specify the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3539
option \f[CB]\-XX:\-ScavengeBeforeFullGC\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3540
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3541
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3542
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3543
.B \f[CB]\-XX:SoftRefLRUPolicyMSPerMB=\f[R]\f[I]time\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3544
Sets the amount of time (in milliseconds) a softly reachable object is
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3545
kept active on the heap after the last time it was referenced.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3546
The default value is one second of lifetime per free megabyte in the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3547
heap.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3548
The \f[CB]\-XX:SoftRefLRUPolicyMSPerMB\f[R] option accepts integer values
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3549
representing milliseconds per one megabyte of the current heap size (for
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3550
Java HotSpot Client VM) or the maximum possible heap size (for Java
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3551
HotSpot Server VM).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3552
This difference means that the Client VM tends to flush soft references
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3553
rather than grow the heap, whereas the Server VM tends to grow the heap
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3554
rather than flush soft references.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3555
In the latter case, the value of the \f[CB]\-Xmx\f[R] option has a
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3556
significant effect on how quickly soft references are garbage collected.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3557
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3558
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3559
The following example shows how to set the value to 2.5 seconds:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3560
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3561
\f[CB]\-XX:SoftRefLRUPolicyMSPerMB=2500\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3562
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3563
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3564
.B \f[CB]\-XX:\-ShrinkHeapInSteps\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3565
Incrementally reduces the Java heap to the target size, specified by the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3566
option \f[CB]\-XX:MaxHeapFreeRatio\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3567
This option is enabled by default.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3568
If disabled, then it immediately reduces the Java heap to the target
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3569
size instead of requiring multiple garbage collection cycles.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3570
Disable this option if you want to minimize the Java heap size.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3571
You will likely encounter performance degradation when this option is
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3572
disabled.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3573
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3574
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3575
See \f[B]Performance Tuning Examples\f[R] for a description of using the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3576
\f[CB]MaxHeapFreeRatio\f[R] option to keep the Java heap small by reducing
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3577
the dynamic footprint for embedded applications.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3578
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3579
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3580
.B \f[CB]\-XX:StringDeduplicationAgeThreshold=\f[R]\f[I]threshold\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3581
Identifies \f[CB]String\f[R] objects reaching the specified age that are
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3582
considered candidates for deduplication.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3583
An object\[aq]s age is a measure of how many times it has survived
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3584
garbage collection.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3585
This is sometimes referred to as tenuring.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3586
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3587
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3588
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3589
\f[B]Note:\f[R] \f[CB]String\f[R] objects that are promoted to an old heap
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3590
region before this age has been reached are always considered candidates
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3591
for deduplication.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3592
The default value for this option is \f[CB]3\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3593
See the \f[CB]\-XX:+UseStringDeduplication\f[R] option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3594
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3595
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3596
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3597
.B \f[CB]\-XX:SurvivorRatio=\f[R]\f[I]ratio\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3598
Sets the ratio between eden space size and survivor space size.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3599
By default, this option is set to 8.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3600
The following example shows how to set the eden/survivor space ratio to
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3601
4:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3602
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3603
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3604
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3605
\f[CB]\-XX:SurvivorRatio=4\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3606
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3607
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3608
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3609
.B \f[CB]\-XX:TargetSurvivorRatio=\f[R]\f[I]percent\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3610
Sets the desired percentage of survivor space (0 to 100) used after
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3611
young garbage collection.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3612
By default, this option is set to 50%.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3613
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3614
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3615
The following example shows how to set the target survivor space ratio
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3616
to 30%:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3617
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3618
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3619
\f[CB]\-XX:TargetSurvivorRatio=30\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3620
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3621
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3622
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3623
.B \f[CB]\-XX:TLABSize=\f[R]\f[I]size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3624
Sets the initial size (in bytes) of a thread\-local allocation buffer
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3625
(TLAB).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3626
Append the letter \f[CB]k\f[R] or \f[CB]K\f[R] to indicate kilobytes,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3627
\f[CB]m\f[R] or \f[CB]M\f[R] to indicate megabytes, or \f[CB]g\f[R] or
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3628
\f[CB]G\f[R] to indicate gigabytes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3629
If this option is set to 0, then the JVM selects the initial size
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3630
automatically.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3631
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3632
.PP
21743
3d979da7bdf0 8029043: Update nroff files for JDK 8
rgallard
parents: 14342
diff changeset
  3633
The following example shows how to set the initial TLAB size to 512 KB:
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3634
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3635
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3636
\f[CB]\-XX:TLABSize=512k\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3637
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3638
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3639
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3640
.B \f[CB]\-XX:+UseAdaptiveSizePolicy\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3641
Enables the use of adaptive generation sizing.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3642
This option is enabled by default.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3643
To disable adaptive generation sizing, specify
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3644
\f[CB]\-XX:\-UseAdaptiveSizePolicy\f[R] and set the size of the memory
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3645
allocation pool explicitly.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3646
See the \f[CB]\-XX:SurvivorRatio\f[R] option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3647
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3648
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3649
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3650
.B \f[CB]\-XX:+UseCMSInitiatingOccupancyOnly\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3651
Enables the use of the occupancy value as the only criterion for
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3652
initiating the CMS collector.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3653
By default, this option is disabled and other criteria may be used.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3654
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3655
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3656
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3657
.B \f[CB]\-XX:+UseG1GC\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3658
Enables the use of the garbage\-first (G1) garbage collector.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3659
It\[aq]s a server\-style garbage collector, targeted for multiprocessor
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3660
machines with a large amount of RAM.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3661
This option meets GC pause time goals with high probability, while
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3662
maintaining good throughput.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3663
The G1 collector is recommended for applications requiring large heaps
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3664
(sizes of around 6 GB or larger) with limited GC latency requirements (a
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3665
stable and predictable pause time below 0.5 seconds).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3666
By default, this option is enabled and G1 is used as the default garbage
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3667
collector.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3668
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3669
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3670
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3671
.B \f[CB]\-XX:+UseGCOverheadLimit\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3672
Enables the use of a policy that limits the proportion of time spent by
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3673
the JVM on GC before an \f[CB]OutOfMemoryError\f[R] exception is thrown.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3674
This option is enabled, by default, and the parallel GC will throw an
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3675
\f[CB]OutOfMemoryError\f[R] if more than 98% of the total time is spent on
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3676
garbage collection and less than 2% of the heap is recovered.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3677
When the heap is small, this feature can be used to prevent applications
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3678
from running for long periods of time with little or no progress.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3679
To disable this option, specify the option
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3680
\f[CB]\-XX:\-UseGCOverheadLimit\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3681
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3682
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3683
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3684
.B \f[CB]\-XX:+UseNUMA\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3685
Enables performance optimization of an application on a machine with
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3686
nonuniform memory architecture (NUMA) by increasing the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3687
application\[aq]s use of lower latency memory.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3688
By default, this option is disabled and no optimization for NUMA is
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3689
made.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3690
The option is available only when the parallel garbage collector is used
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3691
(\f[CB]\-XX:+UseParallelGC\f[R]).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3692
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3693
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3694
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3695
.B \f[CB]\-XX:+UseParallelGC\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3696
Enables the use of the parallel scavenge garbage collector (also known
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3697
as the throughput collector) to improve the performance of your
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3698
application by leveraging multiple processors.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3699
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3700
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3701
By default, this option is disabled and the default collector is used.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3702
If it\[aq]s enabled, then the \f[CB]\-XX:+UseParallelOldGC\f[R] option is
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3703
automatically enabled, unless you explicitly disable it.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3704
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3705
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3706
.B \f[CB]\-XX:+UseParallelOldGC\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3707
Enables the use of the parallel garbage collector for full GCs.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3708
By default, this option is disabled.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3709
Enabling it automatically enables the \f[CB]\-XX:+UseParallelGC\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3710
option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3711
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3712
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3713
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3714
.B \f[CB]\-XX:+UseSerialGC\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3715
Enables the use of the serial garbage collector.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3716
This is generally the best choice for small and simple applications that
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3717
don\[aq]t require any special functionality from garbage collection.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3718
By default, this option is disabled and the default collector is used.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3719
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3720
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3721
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3722
.B \f[CB]\-XX:+UseSHM\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3723
\f[B]Linux only:\f[R] Enables the JVM to use shared memory to set up
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3724
large pages.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3725
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3726
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3727
See \f[B]Large Pages\f[R] for setting up large pages.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3728
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3729
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3730
.B \f[CB]\-XX:+UseStringDeduplication\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3731
Enables string deduplication.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3732
By default, this option is disabled.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3733
To use this option, you must enable the garbage\-first (G1) garbage
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3734
collector.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3735
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3736
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3737
String deduplication reduces the memory footprint of \f[CB]String\f[R]
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  3738
objects on the Java heap by taking advantage of the fact that many
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3739
\f[CB]String\f[R] objects are identical.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3740
Instead of each \f[CB]String\f[R] object pointing to its own character
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3741
array, identical \f[CB]String\f[R] objects can point to and share the same
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3742
character array.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3743
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3744
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3745
.B \f[CB]\-XX:+UseTLAB\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3746
Enables the use of thread\-local allocation blocks (TLABs) in the young
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3747
generation space.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3748
This option is enabled by default.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3749
To disable the use of TLABs, specify the option \f[CB]\-XX:\-UseTLAB\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3750
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3751
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3752
.SH DEPRECATED JAVA OPTIONS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3753
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3754
These \f[CB]java\f[R] options are deprecated and might be removed in a
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3755
future JDK release.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3756
They\[aq]re still accepted and acted upon, but a warning is issued when
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3757
they\[aq]re used.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3758
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3759
.B \f[CB]\-Xfuture\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3760
Enables strict class\-file format checks that enforce close conformance
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3761
to the class\-file format specification.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3762
Developers should use this flag when developing new code.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3763
Stricter checks may become the default in future releases.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3764
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3765
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3766
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3767
.B \f[CB]\-Xloggc:\f[R]\f[I]filename\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3768
Sets the file to which verbose GC events information should be
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3769
redirected for logging.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3770
The \f[CB]\-Xloggc\f[R] option overrides \f[CB]\-verbose:gc\f[R] if both are
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3771
given with the same java command.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3772
\f[CB]\-Xloggc:\f[R]\f[I]filename\f[R] is replaced by
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3773
\f[CB]\-Xlog:gc:\f[R]\f[I]filename\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3774
See Enable Logging with the JVM Unified Logging Framework.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3775
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3776
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3777
Example:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3778
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3779
\f[CB]\-Xlog:gc:garbage\-collection.log\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3780
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3781
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3782
.B \f[CB]\-XX:+FailOverToOldVerifier\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3783
Enables automatic failover to the old verifier when the new type checker
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3784
fails.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3785
By default, this option is disabled and it\[aq]s ignored (that is,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3786
treated as disabled) for classes with a recent bytecode version.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3787
You can enable it only for classes with older versions of the bytecode.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3788
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3789
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3790
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3791
.B \f[CB]\-XX:+TraceClassLoading\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3792
Enables tracing of classes as they are loaded.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3793
By default, this option is disabled and classes aren\[aq]t traced.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3794
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3795
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3796
The replacement Unified Logging syntax is
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3797
\f[CB]\-Xlog:class+load=\f[R]\f[I]level\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3798
See \f[B]Enable Logging with the JVM Unified Logging Framework\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3799
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3800
Use \f[I]level\f[R]=\f[CB]info\f[R] for regular information, or
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3801
\f[I]level\f[R]=\f[CB]debug\f[R] for additional information.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3802
In Unified Logging syntax, \f[CB]\-verbose:class\f[R] equals
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3803
\f[CB]\-Xlog:class+load=info,class+unload=info\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3804
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3805
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3806
.B \f[CB]\-XX:+TraceClassLoadingPreorder\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3807
Enables tracing of all loaded classes in the order in which they\[aq]re
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3808
referenced.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3809
By default, this option is disabled and classes aren\[aq]t traced.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3810
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3811
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3812
The replacement Unified Logging syntax is
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3813
\f[CB]\-Xlog:class+preorder=debug\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3814
See \f[B]Enable Logging with the JVM Unified Logging Framework\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3815
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3816
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3817
.B \f[CB]\-XX:+TraceClassResolution\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3818
Enables tracing of constant pool resolutions.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3819
By default, this option is disabled and constant pool resolutions
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3820
aren\[aq]t traced.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3821
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3822
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3823
The replacement Unified Logging syntax is
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3824
\f[CB]\-Xlog:class+resolve=debug\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3825
See \f[B]Enable Logging with the JVM Unified Logging Framework\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3826
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3827
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3828
.B \f[CB]\-XX:+TraceLoaderConstraints\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3829
Enables tracing of the loader constraints recording.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3830
By default, this option is disabled and loader constraints recording
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3831
isn\[aq]t traced.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3832
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3833
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3834
The replacement Unified Logging syntax is
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3835
\f[CB]\-Xlog:class+loader+constraints=info\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3836
See \f[B]Enable Logging with the JVM Unified Logging Framework\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3837
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3838
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3839
.B \f[CB]\-XX:+UseConcMarkSweepGC\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3840
Enables the use of the CMS garbage collector for the old generation.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3841
CMS is an alternative to the default garbage collector (G1), which also
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3842
focuses on meeting application latency requirements.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3843
By default, this option is disabled and the collector is selected
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3844
automatically based on the configuration of the machine and type of the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3845
JVM.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3846
The CMS garbage collector is deprecated.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3847
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3848
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3849
.SH OBSOLETE JAVA OPTIONS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3850
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3851
These \f[CB]java\f[R] options are still accepted but ignored, and a
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3852
warning is issued when they\[aq]re used.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3853
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3854
.B \f[CB]\-XX:+UseMembar\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3855
Enabled issuing membars on thread\-state transitions.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3856
This option was disabled by default on all platforms except ARM servers,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3857
where it was enabled.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3858
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3859
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3860
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3861
.B \f[CB]\-XX:MaxPermSize=\f[R]\f[I]size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3862
Sets the maximum permanent generation space size (in bytes).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3863
This option was deprecated in JDK 8 and superseded by the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3864
\f[CB]\-XX:MaxMetaspaceSize\f[R] option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3865
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3866
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3867
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3868
.B \f[CB]\-XX:PermSize=\f[R]\f[I]size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3869
Sets the space (in bytes) allocated to the permanent generation that
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3870
triggers a garbage collection if it\[aq]s exceeded.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3871
This option was deprecated in JDK 8 and superseded by the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3872
\f[CB]\-XX:MetaspaceSize\f[R] option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3873
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3874
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3875
.SH REMOVED JAVA OPTIONS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3876
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3877
These \f[CB]java\f[R] options have been removed in JDK 13 and using them
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3878
results in an error of:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3879
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3880
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3881
\f[CB]Unrecognized\ VM\ option\f[R] \f[I]option\-name\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3882
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3883
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3884
.B \f[CB]\-XX:+AggressiveOpts\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3885
Enabled the use of aggressive performance optimization features.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3886
By default, this option was disabled and experimental performance
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3887
features were not used.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3888
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3889
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3890
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3891
For the lists and descriptions of options removed in previous releases
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3892
see the \f[I]Removed Java Options\f[R] section in:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3893
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3894
\f[B]Java Platform, Standard Edition Tools Reference, Release 12\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3895
[https://docs.oracle.com/en/java/javase/12/tools/java.html#GUID\-3B1CE181\-CD30\-4178\-9602\-230B800D4FAE]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3896
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3897
\f[B]Java Platform, Standard Edition Tools Reference, Release 11\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3898
[https://docs.oracle.com/en/java/javase/11/tools/java.html#GUID\-741FC470\-AA3E\-494A\-8D2B\-1B1FE4A990D1]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3899
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3900
\f[B]Java Platform, Standard Edition Tools Reference, Release 10\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3901
[https://docs.oracle.com/javase/10/tools/java.htm#JSWOR624]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3902
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3903
\f[B]Java Platform, Standard Edition Tools Reference, Release 9\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3904
[https://docs.oracle.com/javase/9/tools/java.htm#JSWOR624]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3905
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3906
\f[B]Java Platform, Standard Edition Tools Reference, Release 8 for
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3907
Oracle JDK on Windows\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3908
[https://docs.oracle.com/javase/8/docs/technotes/tools/windows/java.html#BGBCIEFC]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3909
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3910
\f[B]Java Platform, Standard Edition Tools Reference, Release 8 for
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3911
Oracle JDK on Solaris, Linux, and macOS\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3912
[https://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.html#BGBCIEFC]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3913
.SH JAVA COMMAND\-LINE ARGUMENT FILES
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3914
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3915
You can shorten or simplify the \f[CB]java\f[R] command by using
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3916
\f[CB]\@\f[R] argument files to specify one or more text files that
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3917
contain arguments, such as options and class names, which are passed to
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3918
the \f[CB]java\f[R] command.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3919
This let\[aq]s you to create \f[CB]java\f[R] commands of any length on any
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3920
operating system.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3921
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3922
In the command line, use the at sign (\f[CB]\@\f[R]) prefix to identify an
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3923
argument file that contains \f[CB]java\f[R] options and class names.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3924
When the \f[CB]java\f[R] command encounters a file beginning with the at
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3925
sign (\f[CB]\@\f[R]), it expands the contents of that file into an
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3926
argument list just as they would be specified on the command line.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3927
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3928
The \f[CB]java\f[R] launcher expands the argument file contents until it
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3929
encounters the \f[CB]\-Xdisable\-\@files\f[R] option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3930
You can use the \f[CB]\-Xdisable\-\@files\f[R] option anywhere on the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3931
command line, including in an argument file, to stop \f[CB]\@\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3932
argument files expansion.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3933
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3934
The following items describe the syntax of \f[CB]java\f[R] argument files:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3935
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3936
The argument file must contain only ASCII characters or characters in
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3937
system default encoding that\[aq]s ASCII friendly, such as UTF\-8.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3938
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3939
The argument file size must not exceed MAXINT (2,147,483,647) bytes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3940
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3941
The launcher doesn\[aq]t expand wildcards that are present within an
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3942
argument file.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3943
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3944
Use white space or new line characters to separate arguments included in
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3945
the file.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3946
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3947
White space includes a white space character, \f[CB]\\t\f[R],
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3948
\f[CB]\\n\f[R], \f[CB]\\r\f[R], and \f[CB]\\f\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3949
.RS 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3950
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3951
For example, it is possible to have a path with a space, such as
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3952
\f[CB]c:\\Program\ Files\f[R] that can be specified as either
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3953
\f[CB]"c:\\\\Program\ Files"\f[R] or, to avoid an escape,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3954
\f[CB]c:\\Program"\ "Files\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3955
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3956
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3957
Any option that contains spaces, such as a path component, must be
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3958
within quotation marks using quotation (\[aq]"\[aq]) characters in its
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3959
entirety.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3960
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3961
A string within quotation marks may contain the characters \f[CB]\\n\f[R],
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3962
\f[CB]\\r\f[R], \f[CB]\\t\f[R], and \f[CB]\\f\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3963
They are converted to their respective ASCII codes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3964
\ 
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3965
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3966
If a file name contains embedded spaces, then put the whole file name in
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3967
double quotation marks.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3968
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3969
File names in an argument file are relative to the current directory,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3970
not to the location of the argument file.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3971
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3972
Use the number sign \f[CB]#\f[R] in the argument file to identify
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3973
comments.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3974
All characters following the \f[CB]#\f[R] are ignored until the end of
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3975
line.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3976
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3977
Additional at sign \f[CB]\@\f[R] prefixes to \f[CB]\@\f[R] prefixed options
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3978
act as an escape, (the first \f[CB]\@\f[R] is removed and the rest of the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3979
arguments are presented to the launcher literally).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3980
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3981
Lines may be continued using the continuation character (\f[CB]\\\f[R]) at
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3982
the end\-of\-line.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3983
The two lines are concatenated with the leading white spaces trimmed.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3984
To prevent trimming the \ leading white spaces, a continuation character
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3985
(\f[CB]\\\f[R]) may be placed at the first column.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3986
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3987
Because backslash (\\) is an escape character, a backslash
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3988
character\ must be escaped with another backslash character.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3989
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3990
Partial quote is allowed and is closed by an end\-of\-file.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3991
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3992
An open quote stops at end\-of\-line unless \f[CB]\\\f[R] is the last
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3993
character, which then joins the next line by removing all leading white
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3994
space characters.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3995
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3996
Wildcards (*) aren\[aq]t allowed in these lists (such as specifying
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3997
\f[CB]*.java\f[R]).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3998
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3999
Use of the at sign (\f[CB]\@\f[R]) to recursively interpret files
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4000
isn\[aq]t supported.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4001
.SS Example of Open or Partial Quotes in an Argument File
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4002
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4003
In the argument file,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4004
.IP
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  4005
.nf
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4006
\f[CB]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4007
\-cp\ "lib/
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4008
cool/
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4009
app/
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4010
jars
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4011
\f[R]
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  4012
.fi
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4013
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4014
this is interpreted as:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4015
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4016
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4017
\f[CB]\-cp\ lib/cool/app/jars\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4018
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4019
.SS Example of a Backslash Character\ Escaped with Another Backslash
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4020
Character in an Argument File
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4021
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4022
To output the following:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4023
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4024
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4025
\f[CB]\-cp\ c:\\Program\ Files\ (x86)\\Java\\jre\\lib\\ext;c:\\Program\ Files\\Java\\jre9\\lib\\ext\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4026
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4027
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4028
The backslash character must be specified in the argument file as:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4029
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4030
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4031
\f[CB]\-cp\ \ "c:\\\\Program\ Files\ (x86)\\\\Java\\\\jre\\\\lib\\\\ext;c:\\\\Program\ Files\\\\Java\\\\jre9\\\\lib\\\\ext"\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4032
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4033
.SS Example of an EOL Escape Used to Force Concatenation of Lines in an
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4034
Argument File
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4035
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4036
In the argument file,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4037
.IP
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  4038
.nf
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4039
\f[CB]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4040
\-cp\ "/lib/cool\ app/jars:\\
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4041
\ \ \ \ /lib/another\ app/jars"
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4042
\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4043
.fi
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4044
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4045
This is interpreted as:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4046
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4047
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4048
\f[CB]\-cp\ /lib/cool\ app/jars:/lib/another\ app/jars\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4049
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4050
.SS Example of Line Continuation with Leading Spaces in an Argument File
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4051
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4052
In the argument file,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4053
.IP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4054
.nf
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4055
\f[CB]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4056
\-cp\ "/lib/cool\\
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4057
\\app/jars”
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4058
\f[R]
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  4059
.fi
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4060
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4061
This is interpreted as:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4062
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4063
\f[CB]\-cp\ /lib/cool\ app/jars\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4064
.SS Examples of Using Single Argument File
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4065
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4066
You can use a single argument file, such as \f[CB]myargumentfile\f[R] in
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4067
the following example, to hold all required \f[CB]java\f[R] arguments:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4068
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4069
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4070
\f[CB]java\ \@myargumentfile\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4071
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4072
.SS Examples of Using Argument Files with Paths
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4073
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4074
You can include relative paths in argument files; however, they\[aq]re
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4075
relative to the current working directory and not to the paths of the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4076
argument files themselves.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4077
In the following example, \f[CB]path1/options\f[R] and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4078
\f[CB]path2/options\f[R] represent argument files with different paths.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4079
Any relative paths that they contain are relative to the current working
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4080
directory and not to the argument files:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4081
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4082
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4083
\f[CB]java\ \@path1/options\ \@path2/classes\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4084
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4085
.SH CODE HEAP STATE ANALYTICS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4086
.SS Overview
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4087
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4088
There are occasions when having insight into the current state of the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4089
JVM code heap would be helpful to answer questions such as:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4090
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4091
Why was the JIT turned off and then on again and again?
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4092
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4093
Where has all the code heap space gone?
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4094
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4095
Why is the method sweeper not working effectively?
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4096
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4097
To provide this insight, a code heap state analytics feature has been
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4098
implemented that enables on\-the\-fly analysis of the code heap.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4099
The analytics process is divided into two parts.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4100
The first part examines the entire code heap and aggregates all
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4101
information that is believed to be useful or important.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4102
The second part consists of several independent steps that print the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4103
collected information with an emphasis on different aspects of the data.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4104
Data collection and printing are done on an "on request" basis.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4105
.SS Syntax
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4106
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4107
Requests for real\-time, on\-the\-fly analysis can be issued with the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4108
following command:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4109
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4110
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4111
\f[CB]jcmd\f[R] \f[I]pid\f[R] \f[CB]Compiler.CodeHeap_Analytics\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4112
[\f[I]function\f[R]] [\f[I]granularity\f[R]]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4113
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4114
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4115
If you are only interested in how the code heap looks like after running
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4116
a sample workload, you can use the command line option:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4117
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4118
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4119
\f[CB]\-Xlog:codecache=Trace\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4120
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4121
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4122
To see the code heap state when a "CodeCache full" condition exists,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4123
start the VM with the command line option:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4124
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4125
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4126
\f[CB]\-Xlog:codecache=Debug\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4127
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4128
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4129
See \f[B]CodeHeap State Analytics (OpenJDK)\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4130
[https://bugs.openjdk.java.net/secure/attachment/75649/JVM_CodeHeap_StateAnalytics_V2.pdf]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4131
for a detailed description of the code heap state analytics feature, the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4132
supported functions, and the granularity options.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4133
.SH ENABLE LOGGING WITH THE JVM UNIFIED LOGGING FRAMEWORK
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4134
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4135
You use the \f[CB]\-Xlog\f[R] option to configure or enable logging with
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4136
the Java Virtual Machine (JVM) unified logging framework.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4137
.SS Synopsis
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4138
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4139
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4140
\f[CB]\-Xlog\f[R][\f[CB]:\f[R][\f[I]what\f[R]][\f[CB]:\f[R][\f[I]output\f[R]][\f[CB]:\f[R][\f[I]decorators\f[R]][\f[CB]:\f[R]\f[I]output\-options\f[R][\f[CB],\f[R]...]]]]]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4141
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4142
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4143
.B \f[I]what\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4144
Specifies a combination of tags and levels of the form
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4145
\f[I]tag1\f[R][\f[CB]+\f[R]\f[I]tag2\f[R]...][\f[CB]*\f[R]][\f[CB]=\f[R]\f[I]level\f[R]][\f[CB],\f[R]...].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4146
Unless the wildcard (\f[CB]*\f[R]) is specified, only log messages tagged
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4147
with exactly the tags specified are matched.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4148
See \f[B]\-Xlog Tags and Levels\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4149
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4150
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4151
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4152
.B \f[I]output\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4153
Sets the type of output.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4154
Omitting the \f[I]output\f[R] type defaults to \f[CB]stdout\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4155
See \f[B]\-Xlog Output\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4156
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4157
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4158
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4159
.B \f[I]decorators\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4160
Configures the output to use a custom set of decorators.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4161
Omitting \f[I]decorators\f[R] defaults to \f[CB]uptime\f[R],
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4162
\f[CB]level\f[R], and \f[CB]tags\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4163
See \f[B]Decorations\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4164
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4165
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4166
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4167
.B \f[I]output\-options\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4168
Sets the \f[CB]\-Xlog\f[R] logging output options.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4169
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4170
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4171
.SS Description
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4172
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4173
The Java Virtual Machine (JVM) unified logging framework provides a
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4174
common logging system for all components of the JVM.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4175
GC logging for the JVM has been changed to use the new logging
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4176
framework.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4177
The mapping of old GC flags to the corresponding new Xlog configuration
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4178
is described in \f[B]Convert GC Logging Flags to Xlog\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4179
In addition, runtime logging has also been changed to use the JVM
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4180
unified logging framework.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4181
The mapping of legacy runtime logging flags to the corresponding new
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4182
Xlog configuration is described in \f[B]Convert Runtime Logging Flags to
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4183
Xlog\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4184
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4185
The following provides quick reference to the \f[CB]\-Xlog\f[R] command
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4186
and syntax for options:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4187
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4188
.B \f[CB]\-Xlog\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4189
Enables JVM logging on an \f[CB]info\f[R] level.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4190
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4191
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4192
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4193
.B \f[CB]\-Xlog:help\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4194
Prints \f[CB]\-Xlog\f[R] usage syntax and available tags, levels, and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4195
decorators along with example command lines with explanations.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4196
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4197
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4198
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4199
.B \f[CB]\-Xlog:disable\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4200
Turns off all logging and clears all configuration of the logging
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4201
framework including the default configuration for warnings and errors.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4202
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4203
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4204
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4205
.B \f[CB]\-Xlog\f[R][\f[CB]:\f[R]\f[I]option\f[R]]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4206
Applies multiple arguments in the order that they appear on the command
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4207
line.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4208
Multiple \f[CB]\-Xlog\f[R] arguments for the same output override each
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4209
other in their given order.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4210
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4211
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4212
The \f[I]option\f[R] is set as:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4213
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4214
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4215
[\f[I]tag\-selection\f[R]][\f[CB]:\f[R][\f[I]output\f[R]][\f[CB]:\f[R][\f[I]decorators\f[R]][\f[CB]:\f[R]\f[I]output\-options\f[R]]]]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4216
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4217
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4218
Omitting the \f[I]tag\-selection\f[R] defaults to a tag\-set of
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4219
\f[CB]all\f[R] and a level of \f[CB]info\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4220
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4221
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4222
\f[I]tag\f[R][\f[CB]+\f[R]...] \f[CB]all\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4223
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4224
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4225
The \f[CB]all\f[R] tag is a meta tag consisting of all tag\-sets
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4226
available.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4227
The asterisk \f[CB]*\f[R] in a tag set definition denotes a wildcard tag
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4228
match.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4229
Matching with a wildcard selects all tag sets that contain \f[I]at
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4230
least\f[R] the specified tags.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4231
Without the wildcard, only exact matches of the specified tag sets are
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4232
selected.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4233
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4234
\f[I]output\-options\f[R] is
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4235
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4236
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4237
\f[CB]filecount=\f[R]\f[I]file\-count\f[R] \f[CB]filesize=\f[R]\f[I]file size
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4238
with optional K, M or G suffix\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4239
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4240
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4241
.SS Default Configuration
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4242
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4243
When the \f[CB]\-Xlog\f[R] option and nothing else is specified on the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4244
command line, the default configuration is used.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4245
The default configuration logs all messages with a level that matches
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4246
either warning or error regardless of what tags the message is
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4247
associated with.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4248
The default configuration is equivalent to entering the following on the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4249
command line:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4250
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4251
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4252
\f[CB]\-Xlog:all=warning:stdout:uptime,level,tags\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4253
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4254
.SS Controlling Logging at Runtime
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4255
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4256
Logging can also be controlled at run time through Diagnostic Commands
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4257
(with the \f[B]jcmd\f[R] utility).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4258
Everything that can be specified on the command line can also be
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4259
specified dynamically with the \f[CB]VM.log\f[R] command.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4260
As the diagnostic commands are automatically exposed as MBeans, you can
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4261
use JMX to change logging configuration at run time.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4262
.SS \-Xlog Tags and Levels
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4263
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4264
Each log message has a level and a tag set associated with it.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4265
The level of the message corresponds to its details, and the tag set
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4266
corresponds to what the message contains or which JVM component it
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4267
involves (such as, \f[CB]gc\f[R], \f[CB]jit\f[R], or \f[CB]os\f[R]).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4268
Mapping GC flags to the Xlog configuration is described in \f[B]Convert
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4269
GC Logging Flags to Xlog\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4270
Mapping legacy runtime logging flags to the corresponding Xlog
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4271
configuration is described in \f[B]Convert Runtime Logging Flags to
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4272
Xlog\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4273
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4274
\f[B]Available log levels:\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4275
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4276
\f[CB]off\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4277
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4278
\f[CB]trace\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4279
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4280
\f[CB]debug\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4281
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4282
\f[CB]info\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4283
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4284
\f[CB]warning\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4285
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4286
\f[CB]error\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4287
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4288
\f[B]Available log tags:\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4289
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4290
There are literally dozens of log tags, which in the right combinations,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4291
will enable a range of logging output.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4292
The full set of available log tags can be seen using
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4293
\f[CB]\-Xlog:help\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4294
Specifying \f[CB]all\f[R] instead of a tag combination matches all tag
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4295
combinations.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4296
.SS \-Xlog Output
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4297
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4298
The \f[CB]\-Xlog\f[R] option supports the following types of outputs:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4299
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4300
\f[CB]stdout\f[R] \-\-\- Sends output to stdout
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4301
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4302
\f[CB]stderr\f[R] \-\-\- Sends output to stderr
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4303
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4304
\f[CB]file=\f[R]\f[I]filename\f[R] \-\-\- Sends output to text file(s).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4305
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4306
When using \f[CB]file=\f[R]\f[I]filename\f[R], specifying \f[CB]%p\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4307
and/or \f[CB]%t\f[R] in the file name expands to the JVM\[aq]s PID and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4308
startup timestamp, respectively.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4309
You can also configure text files to handle file rotation based on file
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4310
size and a number of files to rotate.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4311
For example, to rotate the log file every 10 MB and keep 5 files in
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4312
rotation, specify the options \f[CB]filesize=10M,\ filecount=5\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4313
The target size of the files isn\[aq]t guaranteed to be exact, it\[aq]s
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4314
just an approximate value.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4315
Files are rotated by default with up to 5 rotated files of target size
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4316
20 MB, unless configured otherwise.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4317
Specifying \f[CB]filecount=0\f[R] means that the log file shouldn\[aq]t be
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4318
rotated.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4319
There\[aq]s a possibility of the pre\-existing log file getting
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4320
overwritten.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4321
.SS Decorations
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4322
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4323
Logging messages are decorated with information about the message.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4324
You can configure each output to use a custom set of decorators.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4325
The order of the output is always the same as listed in the table.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4326
You can configure the decorations to be used at run time.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4327
Decorations are prepended to the log message.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4328
For example:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4329
.IP
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  4330
.nf
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4331
\f[CB]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4332
[6.567s][info][gc,old]\ Old\ collection\ complete
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4333
\f[R]
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  4334
.fi
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4335
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4336
Omitting \f[CB]decorators\f[R] defaults to \f[CB]uptime\f[R],
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4337
\f[CB]level\f[R], and \f[CB]tags\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4338
The \f[CB]none\f[R] decorator is special and is used to turn off all
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4339
decorations.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4340
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4341
\f[CB]time\f[R] (\f[CB]t\f[R]), \f[CB]utctime\f[R] (\f[CB]utc\f[R]),
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4342
\f[CB]uptime\f[R] (\f[CB]u\f[R]), \f[CB]timemillis\f[R] (\f[CB]tm\f[R]),
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4343
\f[CB]uptimemillis\f[R] (\f[CB]um\f[R]), \f[CB]timenanos\f[R] (\f[CB]tn\f[R]),
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4344
\f[CB]uptimenanos\f[R] (\f[CB]un\f[R]), \f[CB]hostname\f[R] (\f[CB]hn\f[R]),
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4345
\f[CB]pid\f[R] (\f[CB]p\f[R]), \f[CB]tid\f[R] (\f[CB]ti\f[R]), \f[CB]level\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4346
(\f[CB]l\f[R]), \f[CB]tags\f[R] (\f[CB]tg\f[R]) decorators can also be
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4347
specified as \f[CB]none\f[R] for no decoration.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4348
.PP
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  4349
.TS
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4350
tab(@);
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4351
lw(14.9n) lw(55.1n).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4352
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4353
Decorations
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4354
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4355
Description
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4356
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4357
_
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4358
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4359
\f[CB]time\f[R] or \f[CB]t\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4360
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4361
Current time and date in ISO\-8601 format.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4362
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4363
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4364
\f[CB]utctime\f[R] or \f[CB]utc\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4365
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4366
Universal Time Coordinated or Coordinated Universal Time.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4367
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4368
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4369
\f[CB]uptime\f[R] or \f[CB]u\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4370
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4371
Time since the start of the JVM in seconds and milliseconds.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4372
For example, 6.567s.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4373
T}
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  4374
T{
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4375
\f[CB]timemillis\f[R] or \f[CB]tm\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4376
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4377
The same value as generated by \f[CB]System.currentTimeMillis()\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4378
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4379
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4380
\f[CB]uptimemillis\f[R] or \f[CB]um\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4381
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4382
Milliseconds since the JVM started.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4383
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4384
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4385
\f[CB]timenanos\f[R] or \f[CB]tn\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4386
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4387
The same value generated by \f[CB]System.nanoTime()\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4388
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4389
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4390
\f[CB]uptimenanos\f[R] or \f[CB]un\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4391
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4392
Nanoseconds since the JVM started.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4393
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4394
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4395
\f[CB]hostname\f[R] or \f[CB]hn\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4396
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4397
The host name.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4398
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4399
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4400
\f[CB]pid\f[R] or \f[CB]p\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4401
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4402
The process identifier.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4403
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4404
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4405
\f[CB]tid\f[R] or \f[CB]ti\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4406
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4407
The thread identifier.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4408
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4409
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4410
\f[CB]level\f[R] or \f[CB]l\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4411
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4412
The level associated with the log message.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4413
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4414
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4415
\f[CB]tags\f[R] or \f[CB]tg\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4416
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4417
The tag\-set associated with the log message.
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  4418
T}
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  4419
.TE
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4420
.SS Convert GC Logging Flags to Xlog
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4421
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4422
.TS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4423
tab(@);
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4424
lw(22.4n) lw(16.5n) lw(31.2n).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4425
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4426
Legacy Garbage Collection (GC) Flag
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4427
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4428
Xlog Configuration
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4429
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4430
Comment
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4431
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4432
_
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4433
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4434
\f[CB]G1PrintHeapRegions\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4435
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4436
\f[CB]\-Xlog:gc+region=trace\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4437
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4438
Not Applicable
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4439
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4440
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4441
\f[CB]GCLogFileSize\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4442
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4443
No configuration available
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4444
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4445
Log rotation is handled by the framework.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4446
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4447
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4448
\f[CB]NumberOfGCLogFiles\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4449
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4450
Not Applicable
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4451
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4452
Log rotation is handled by the framework.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4453
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4454
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4455
\f[CB]PrintAdaptiveSizePolicy\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4456
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4457
\f[CB]\-Xlog:gc+ergo*=\f[R]\f[I]level\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4458
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4459
Use a \f[I]level\f[R] of \f[CB]debug\f[R] for most of the information, or a
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4460
\f[I]level\f[R] of \f[CB]trace\f[R] for all of what was logged for
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4461
\f[CB]PrintAdaptiveSizePolicy\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4462
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4463
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4464
\f[CB]PrintGC\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4465
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4466
\f[CB]\-Xlog:gc\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4467
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4468
Not Applicable
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4469
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4470
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4471
\f[CB]PrintGCApplicationConcurrentTime\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4472
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4473
\f[CB]\-Xlog:safepoint\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4474
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4475
Note that \f[CB]PrintGCApplicationConcurrentTime\f[R] and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4476
\f[CB]PrintGCApplicationStoppedTime\f[R] are logged on the same tag and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4477
aren\[aq]t separated in the new logging.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4478
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4479
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4480
\f[CB]PrintGCApplicationStoppedTime\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4481
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4482
\f[CB]\-Xlog:safepoint\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4483
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4484
Note that \f[CB]PrintGCApplicationConcurrentTime\f[R] and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4485
\f[CB]PrintGCApplicationStoppedTime\f[R] are logged on the same tag and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4486
not separated in the new logging.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4487
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4488
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4489
\f[CB]PrintGCCause\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4490
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4491
Not Applicable
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4492
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4493
GC cause is now always logged.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4494
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4495
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4496
\f[CB]PrintGCDateStamps\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4497
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4498
Not Applicable
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4499
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4500
Date stamps are logged by the framework.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4501
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4502
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4503
\f[CB]PrintGCDetails\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4504
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4505
\f[CB]\-Xlog:gc*\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4506
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4507
Not Applicable
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4508
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4509
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4510
\f[CB]PrintGCID\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4511
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4512
Not Applicable
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4513
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4514
GC ID is now always logged.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4515
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4516
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4517
\f[CB]PrintGCTaskTimeStamps\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4518
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4519
\f[CB]\-Xlog:gc+task*=debug\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4520
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4521
Not Applicable
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4522
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4523
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4524
\f[CB]PrintGCTimeStamps\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4525
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4526
Not Applicable
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4527
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4528
Time stamps are logged by the framework.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4529
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4530
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4531
\f[CB]PrintHeapAtGC\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4532
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4533
\f[CB]\-Xlog:gc+heap=trace\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4534
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4535
Not Applicable
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4536
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4537
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4538
\f[CB]PrintReferenceGC\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4539
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4540
\f[CB]\-Xlog:gc+ref*=debug\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4541
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4542
Note that in the old logging, \f[CB]PrintReferenceGC\f[R] had an effect
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4543
only if \f[CB]PrintGCDetails\f[R] was also enabled.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4544
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4545
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4546
\f[CB]PrintStringDeduplicationStatistics\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4547
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4548
`\-Xlog:gc+stringdedup*=debug
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4549
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4550
` Not Applicable
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4551
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4552
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4553
\f[CB]PrintTenuringDistribution\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4554
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4555
\f[CB]\-Xlog:gc+age*=\f[R]\f[I]level\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4556
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4557
Use a \f[I]level\f[R] of \f[CB]debug\f[R] for the most relevant
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4558
information, or a \f[I]level\f[R] of \f[CB]trace\f[R] for all of what was
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4559
logged for \f[CB]PrintTenuringDistribution\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4560
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4561
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4562
\f[CB]UseGCLogFileRotation\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4563
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4564
Not Applicable
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4565
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4566
What was logged for \f[CB]PrintTenuringDistribution\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4567
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4568
.TE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4569
.SS Convert Runtime Logging Flags to Xlog
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4570
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4571
.TS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4572
tab(@);
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4573
lw(15.0n) lw(20.2n) lw(34.7n).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4574
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4575
Legacy Runtime Flag
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4576
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4577
Xlog Configuration
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4578
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4579
Comment
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4580
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4581
_
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4582
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4583
\f[CB]TraceExceptions\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4584
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4585
\f[CB]\-Xlog:exceptions=info\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4586
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4587
Not Applicable
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4588
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4589
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4590
\f[CB]TraceClassLoading\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4591
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4592
\f[CB]\-Xlog:class+load=\f[R]\f[I]level\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4593
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4594
Use \f[I]level\f[R]=\f[CB]info\f[R] for regular information, or
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4595
\f[I]level\f[R]=\f[CB]debug\f[R] for additional information.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4596
In Unified Logging syntax, \f[CB]\-verbose:class\f[R] equals
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4597
\f[CB]\-Xlog:class+load=info,class+unload=info\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4598
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4599
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4600
\f[CB]TraceClassLoadingPreorder\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4601
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4602
\f[CB]\-Xlog:class+preorder=debug\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4603
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4604
Not Applicable
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4605
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4606
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4607
\f[CB]TraceClassUnloading\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4608
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4609
\f[CB]\-Xlog:class+unload=\f[R]\f[I]level\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4610
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4611
Use \f[I]level\f[R]=\f[CB]info\f[R] for regular information, or
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4612
\f[I]level\f[R]=\f[CB]trace\f[R] for additional information.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4613
In Unified Logging syntax, \f[CB]\-verbose:class\f[R] equals
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4614
\f[CB]\-Xlog:class+load=info,class+unload=info\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4615
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4616
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4617
\f[CB]VerboseVerification\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4618
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4619
\f[CB]\-Xlog:verification=info\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4620
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4621
Not Applicable
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4622
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4623
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4624
\f[CB]TraceClassPaths\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4625
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4626
\f[CB]\-Xlog:class+path=info\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4627
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4628
Not Applicable
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4629
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4630
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4631
\f[CB]TraceClassResolution\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4632
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4633
\f[CB]\-Xlog:class+resolve=debug\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4634
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4635
Not Applicable
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4636
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4637
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4638
\f[CB]TraceClassInitialization\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4639
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4640
\f[CB]\-Xlog:class+init=info\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4641
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4642
Not Applicable
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4643
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4644
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4645
\f[CB]TraceLoaderConstraints\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4646
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4647
\f[CB]\-Xlog:class+loader+constraints=info\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4648
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4649
Not Applicable
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4650
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4651
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4652
\f[CB]TraceClassLoaderData\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4653
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4654
\f[CB]\-Xlog:class+loader+data=\f[R]\f[I]level\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4655
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4656
Use \f[I]level\f[R]=\f[CB]debug\f[R] for regular information or
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4657
\f[I]level\f[R]=\f[CB]trace\f[R] for additional information.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4658
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4659
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4660
\f[CB]TraceSafepointCleanupTime\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4661
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4662
\f[CB]\-Xlog:safepoint+cleanup=info\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4663
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4664
Not Applicable
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4665
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4666
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4667
\f[CB]TraceSafepoint\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4668
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4669
\f[CB]\-Xlog:safepoint=debug\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4670
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4671
Not Applicable
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4672
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4673
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4674
\f[CB]TraceMonitorInflation\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4675
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4676
\f[CB]\-Xlog:monitorinflation=debug\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4677
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4678
Not Applicable
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4679
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4680
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4681
\f[CB]TraceBiasedLocking\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4682
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4683
\f[CB]\-Xlog:biasedlocking=\f[R]\f[I]level\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4684
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4685
Use \f[I]level\f[R]=\f[CB]info\f[R] for regular information, or
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4686
\f[I]level\f[R]=\f[CB]trace\f[R] for additional information.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4687
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4688
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4689
\f[CB]TraceRedefineClasses\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4690
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4691
\f[CB]\-Xlog:redefine+class*=\f[R]\f[I]level\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4692
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4693
\f[I]level\f[R]=\f[CB]info\f[R], \f[CB]debug\f[R], and \f[CB]trace\f[R] provide
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4694
increasing amounts of information.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4695
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4696
.TE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4697
.SS \-Xlog Usage Examples
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4698
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4699
The following are \f[CB]\-Xlog\f[R] examples.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4700
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4701
.B \f[CB]\-Xlog\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4702
Logs all messages by using the \f[CB]info\f[R] level to \f[CB]stdout\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4703
with \f[CB]uptime\f[R], \f[CB]levels\f[R], and \f[CB]tags\f[R] decorations.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4704
This is equivalent to using:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4705
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4706
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4707
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4708
\f[CB]\-Xlog:all=info:stdout:uptime,levels,tags\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4709
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4710
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4711
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4712
.B \f[CB]\-Xlog:gc\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4713
Logs messages tagged with the \f[CB]gc\f[R] tag using \f[CB]info\f[R] level
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4714
to \f[CB]stdout\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4715
The default configuration for all other messages at level
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4716
\f[CB]warning\f[R] is in effect.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4717
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4718
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4719
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4720
.B \f[CB]\-Xlog:gc,safepoint\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4721
Logs messages tagged either with the \f[CB]gc\f[R] or \f[CB]safepoint\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4722
tags, both using the \f[CB]info\f[R] level, to \f[CB]stdout\f[R], with
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4723
default decorations.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4724
Messages tagged with both \f[CB]gc\f[R] and \f[CB]safepoint\f[R] won\[aq]t
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4725
be logged.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4726
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4727
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4728
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4729
.B \f[CB]\-Xlog:gc+ref=debug\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4730
Logs messages tagged with both \f[CB]gc\f[R] and \f[CB]ref\f[R] tags, using
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4731
the \f[CB]debug\f[R] level to \f[CB]stdout\f[R], with default decorations.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4732
Messages tagged only with one of the two tags won\[aq]t be logged.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4733
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4734
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4735
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4736
.B \f[CB]\-Xlog:gc=debug:file=gc.txt:none\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4737
Logs messages tagged with the \f[CB]gc\f[R] tag using the \f[CB]debug\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4738
level to a file called \f[CB]gc.txt\f[R] with no decorations.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4739
The default configuration for all other messages at level
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4740
\f[CB]warning\f[R] is still in effect.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4741
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4742
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4743
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4744
.B \f[CB]\-Xlog:gc=trace:file=gctrace.txt:uptimemillis,pids:filecount=5,filesize=1024\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4745
Logs messages tagged with the \f[CB]gc\f[R] tag using the \f[CB]trace\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4746
level to a rotating file set with 5 files with size 1 MB with the base
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4747
name \f[CB]gctrace.txt\f[R] and uses decorations \f[CB]uptimemillis\f[R] and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4748
\f[CB]pid\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4749
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4750
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4751
The default configuration for all other messages at level
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4752
\f[CB]warning\f[R] is still in effect.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4753
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4754
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4755
.B \f[CB]\-Xlog:gc::uptime,tid\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4756
Logs messages tagged with the \f[CB]gc\f[R] tag using the default
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4757
\[aq]info\[aq] level to default the output \f[CB]stdout\f[R] and uses
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4758
decorations \f[CB]uptime\f[R] and \f[CB]tid\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4759
The default configuration for all other messages at level
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4760
\f[CB]warning\f[R] is still in effect.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4761
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4762
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4763
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4764
.B \f[CB]\-Xlog:gc*=info,safepoint*=off\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4765
Logs messages tagged with at least \f[CB]gc\f[R] using the \f[CB]info\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4766
level, but turns off logging of messages tagged with \f[CB]safepoint\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4767
Messages tagged with both \f[CB]gc\f[R] and \f[CB]safepoint\f[R] won\[aq]t
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4768
be logged.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4769
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4770
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4771
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4772
.B \f[CB]\-Xlog:disable\ \-Xlog:safepoint=trace:safepointtrace.txt\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4773
Turns off all logging, including warnings and errors, and then enables
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4774
messages tagged with \f[CB]safepoint\f[R]using \f[CB]trace\f[R]level to the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4775
file \f[CB]safepointtrace.txt\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4776
The default configuration doesn\[aq]t apply, because the command line
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4777
started with \f[CB]\-Xlog:disable\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4778
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4779
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4780
.SS Complex \-Xlog Usage Examples
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4781
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4782
The following describes a few complex examples of using the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4783
\f[CB]\-Xlog\f[R] option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4784
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4785
.B \f[CB]\-Xlog:gc+class*=debug\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4786
Logs messages tagged with at least \f[CB]gc\f[R] and \f[CB]class\f[R] tags
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4787
using the \f[CB]debug\f[R] level to \f[CB]stdout\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4788
The default configuration for all other messages at the level
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4789
\f[CB]warning\f[R] is still in effect
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4790
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4791
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4792
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4793
.B \f[CB]\-Xlog:gc+meta*=trace,class*=off:file=gcmetatrace.txt\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4794
Logs messages tagged with at least the \f[CB]gc\f[R] and \f[CB]meta\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4795
tags using the \f[CB]trace\f[R] level to the file \f[CB]metatrace.txt\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4796
but turns off all messages tagged with \f[CB]class\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4797
Messages tagged with \f[CB]gc\f[R], \f[CB]meta\f[R], and \f[CB]class\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4798
aren\[aq]t be logged as \f[CB]class*\f[R] is set to off.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4799
The default configuration for all other messages at level
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4800
\f[CB]warning\f[R] is in effect except for those that include
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4801
\f[CB]class\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4802
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4803
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4804
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4805
.B \f[CB]\-Xlog:gc+meta=trace\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4806
Logs messages tagged with exactly the \f[CB]gc\f[R] and \f[CB]meta\f[R] tags
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4807
using the \f[CB]trace\f[R] level to \f[CB]stdout\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4808
The default configuration for all other messages at level
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4809
\f[CB]warning\f[R] is still be in effect.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4810
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4811
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4812
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4813
.B \f[CB]\-Xlog:gc+class+heap*=debug,meta*=warning,threads*=off\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4814
Logs messages tagged with at least \f[CB]gc\f[R], \f[CB]class\f[R], and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4815
\f[CB]heap\f[R] tags using the \f[CB]trace\f[R] level to \f[CB]stdout\f[R] but
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4816
only log messages tagged with \f[CB]meta\f[R] with level.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4817
The default configuration for all other messages at the level
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4818
\f[CB]warning\f[R] is in effect except for those that include
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4819
\f[CB]threads\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4820
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4821
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4822
.SH VALIDATE JAVA VIRTUAL MACHINE FLAG ARGUMENTS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4823
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4824
You use values provided to all Java Virtual Machine (JVM) command\-line
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4825
flags for validation and, if the input value is invalid or
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4826
out\-of\-range, then an appropriate error message is displayed.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4827
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4828
Whether they\[aq]re set ergonomically, in a command line, by an input
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4829
tool, or through the APIs (for example, classes contained in the package
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4830
\f[CB]java.lang.management\f[R]) the values provided to all Java Virtual
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4831
Machine (JVM) command\-line flags are validated.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4832
Ergonomics are described in Java Platform, Standard Edition HotSpot
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4833
Virtual Machine Garbage Collection Tuning Guide.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4834
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4835
Range and constraints are validated either when all flags have their
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4836
values set during JVM initialization or a flag\[aq]s value is changed
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4837
during runtime (for example using the \f[CB]jcmd\f[R] tool).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4838
The JVM is terminated if a value violates either the range or constraint
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4839
check and an appropriate error message is printed on the error stream.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4840
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4841
For example, if a flag violates a range or a constraint check, then the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4842
JVM exits with an error:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4843
.IP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4844
.nf
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4845
\f[CB]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4846
java\ \-XX:AllocatePrefetchStyle=5\ \-version\ \ \ 
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4847
intx\ AllocatePrefetchStyle=5\ is\ outside\ the\ allowed\ range\ [\ 0\ ...\ 3\ ]\ \ \ 
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4848
Improperly\ specified\ VM\ option\ \[aq]AllocatePrefetchStyle=5\[aq]\ \ \ 
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4849
Error:\ Could\ not\ create\ the\ Java\ Virtual\ Machine.\ \ 
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4850
Error:\ A\ fatal\ exception\ has\ occurred.\ Program\ will\ exit.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4851
\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4852
.fi
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4853
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4854
The flag \f[CB]\-XX:+PrintFlagsRanges\f[R] prints the range of all the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4855
flags.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4856
This flag allows automatic testing of the flags by the values provided
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4857
by the ranges.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4858
For the flags that have the ranges specified, the type, name, and the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4859
actual range is printed in the output.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4860
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4861
For example,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4862
.IP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4863
.nf
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4864
\f[CB]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4865
intx\ \ \ ThreadStackSize\ [\ 0\ ...\ 9007199254740987\ ]\ {pd\ product}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4866
\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4867
.fi
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4868
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4869
For the flags that don\[aq]t have the range specified, the values
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4870
aren\[aq]t displayed in the print out.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4871
For example:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4872
.IP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4873
.nf
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4874
\f[CB]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4875
size_t\ NewSize\ \ \ \ \ \ \ \ \ [\ \ \ ...\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ]\ {product}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4876
\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4877
.fi
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4878
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4879
This helps to identify the flags that need to be implemented.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4880
The automatic testing framework can skip those flags that don\[aq]t have
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4881
values and aren\[aq]t implemented.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4882
.SH LARGE PAGES
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4883
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4884
You use large pages, also known as huge pages, as memory pages that are
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4885
significantly larger than the standard memory page size (which varies
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4886
depending on the processor and operating system).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4887
Large pages optimize processor Translation\-Lookaside Buffers.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4888
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4889
A Translation\-Lookaside Buffer (TLB) is a page translation cache that
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4890
holds the most\-recently used virtual\-to\-physical address
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4891
translations.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4892
A TLB is a scarce system resource.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4893
A TLB miss can be costly because the processor must then read from the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4894
hierarchical page table, which may require multiple memory accesses.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4895
By using a larger memory page size, a single TLB entry can represent a
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4896
larger memory range.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4897
This results in less pressure on a TLB, and memory\-intensive
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4898
applications may have better performance.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4899
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4900
However, large pages page memory can negatively affect system
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4901
performance.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4902
For example, when a large mount of memory is pinned by an application,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4903
it may create a shortage of regular memory and cause excessive paging in
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4904
other applications and slow down the entire system.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4905
Also, a system that has been up for a long time could produce excessive
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4906
fragmentation, which could make it impossible to reserve enough large
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4907
page memory.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4908
When this happens, either the OS or JVM reverts to using regular pages.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4909
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4910
Oracle Solaris, Linux, and Windows support large pages.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4911
.SS Large Pages Support for Oracle Solaris
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4912
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4913
Oracle Solaris includes Multiple Page Size Support (MPSS).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4914
No additional configuration is necessary.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4915
.SS Large Pages Support for Linux
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4916
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4917
The 2.6 kernel supports large pages.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4918
Some vendors have backported the code to their 2.4\-based releases.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4919
To check if your system can support large page memory, try the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4920
following:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4921
.IP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4922
.nf
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4923
\f[CB]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4924
#\ cat\ /proc/meminfo\ |\ grep\ Huge
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4925
HugePages_Total:\ 0
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4926
HugePages_Free:\ 0
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4927
Hugepagesize:\ 2048\ kB
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4928
\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4929
.fi
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4930
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4931
If the output shows the three "Huge" variables, then your system can
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4932
support large page memory but it needs to be configured.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4933
If the command prints nothing, then your system doesn\[aq]t support
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4934
large pages.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4935
To configure the system to use large page memory, login as
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4936
\f[CB]root\f[R], and then follow these steps:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4937
.IP "1." 3
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4938
If you\[aq]re using the option \f[CB]\-XX:+UseSHM\f[R] (instead of
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4939
\f[CB]\-XX:+UseHugeTLBFS\f[R]), then increase the \f[CB]SHMMAX\f[R] value.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4940
It must be larger than the Java heap size.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4941
On a system with 4 GB of physical RAM (or less), the following makes all
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4942
the memory sharable:
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  4943
.RS 4
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4944
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4945
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4946
\f[CB]#\ echo\ 4294967295\ >\ /proc/sys/kernel/shmmax\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4947
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4948
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4949
.IP "2." 3
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4950
If you\[aq]re using the option \f[CB]\-XX:+UseSHM\f[R] or
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4951
\f[CB]\-XX:+UseHugeTLBFS\f[R], then specify the number of large pages.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4952
In the following example, 3 GB of a 4 GB system are reserved for large
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4953
pages (assuming a large page size of 2048kB, then 3 GB = 3 * 1024 MB =
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4954
3072 MB = 3072 * 1024 kB = 3145728 kB and 3145728 kB / 2048 kB = 1536):
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  4955
.RS 4
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4956
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4957
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4958
\f[CB]#\ echo\ 1536\ >\ /proc/sys/vm/nr_hugepages\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4959
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4960
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4961
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4962
\f[B]Note:\f[R] The values contained in \f[CB]/proc\f[R] resets after you
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4963
reboot your system, so may want to set them in an initialization script
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4964
(for example, \f[CB]rc.local\f[R] or \f[CB]sysctl.conf\f[R]).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4965
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4966
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4967
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4968
If you configure (or resize) the OS kernel parameters
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4969
\f[CB]/proc/sys/kernel/shmmax\f[R] or \f[CB]/proc/sys/vm/nr_hugepages\f[R],
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4970
Java processes may allocate large pages for areas in addition to the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4971
Java heap.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4972
These steps can allocate large pages for the following areas:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4973
.RS 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4974
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4975
Java heap
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4976
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4977
Code cache
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4978
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4979
The marking bitmap data structure for the parallel GC
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4980
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4981
Consequently, if you configure the \f[CB]nr_hugepages\f[R] parameter to
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4982
the size of the Java heap, then the JVM can fail in allocating the code
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4983
cache areas on large pages because these areas are quite large in size.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4984
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4985
.SS Large Pages Support for Windows
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4986
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4987
To use large pages support on Windows, the administrator must first
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4988
assign additional privileges to the user who is running the application:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4989
.IP "1." 3
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4990
Select \f[B]Control Panel\f[R], \f[B]Administrative Tools\f[R], and then
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4991
\f[B]Local Security Policy\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4992
.IP "2." 3
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4993
Select \f[B]Local Policies\f[R] and then \f[B]User Rights Assignment\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4994
.IP "3." 3
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4995
Double\-click \f[B]Lock pages in memory\f[R], then add users and/or
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4996
groups.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4997
.IP "4." 3
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4998
Reboot your system.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4999
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5000
Note that these steps are required even if it\[aq]s the administrator
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5001
who\[aq]s running the application, because administrators by default
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5002
don\[aq]t have the privilege to lock pages in memory.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5003
.SH APPLICATION CLASS DATA SHARING
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5004
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5005
Application Class Data Sharing (AppCDS) extends class data sharing (CDS)
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5006
to enable application classes to be placed in a shared archive.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5007
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5008
In addition to the core library classes, AppCDS supports \f[B]Class Data
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5009
Sharing\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5010
[https://docs.oracle.com/en/java/javase/12/vm/class\-data\-sharing.html#GUID\-7EAA3411\-8CF0\-4D19\-BD05\-DF5E1780AA91]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5011
from the following locations:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5012
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5013
Platform classes from the runtime image
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5014
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5015
Application classes from the runtime image
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5016
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5017
Application classes from the class path
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5018
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5019
Application classes from the module path
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5020
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5021
Archiving application classes provides better start up time at runtime.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5022
When running multiple JVM processes, AppCDS also reduces the runtime
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5023
footprint with memory sharing for read\-only metadata.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5024
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5025
CDS/AppCDS supports archiving classes from JAR files only.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5026
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5027
Prior to JDK 11, a non\-empty directory was reported as a fatal error in
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5028
the following conditions:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5029
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5030
For base CDS, a non\-empty directory cannot exist in the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5031
\f[CB]\-Xbootclasspath/a\f[R] path
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5032
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5033
With \f[CB]\-XX:+UseAppCDS\f[R], a non\-empty directory could not exist in
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5034
the \f[CB]\-Xbootclasspath/a\f[R] path, class path, and module path.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5035
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5036
In JDK 11 and later, \f[CB]\-XX:+UseAppCDS\f[R] is obsolete and the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5037
behavior for a non\-empty directory is based on the class types in the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5038
classlist.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5039
A non\-empty directory is reported as a fatal error in the following
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5040
conditions:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5041
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5042
If application classes or platform classes are not loaded, dump time
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5043
only reports an error if a non\-empty directory exists in
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5044
\f[CB]\-Xbootclasspath/a\f[R] path
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5045
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5046
If application classes or platform classes are loaded, dump time reports
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5047
an error for a non\-empty directory that exists in
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5048
\f[CB]\-Xbootclasspath/a\f[R] path, class path, or module path
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5049
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5050
In JDK 11 and later, using
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5051
\f[CB]\-XX:DumpLoadedClassList=\f[R]\f[I]class_list_file\f[R] results a
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5052
generated classlist with all classes (both system library classes and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5053
application classes) included.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5054
You no longer have to specify \f[CB]\-XX:+UseAppCDS\f[R] with
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5055
\f[CB]\-XX:DumpLoadedClassList\f[R] to produce a complete class list.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5056
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5057
In JDK 11 and later, because \f[CB]UseAppCDS\f[R] is obsolete,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5058
\f[CB]SharedArchiveFile\f[R] becomes a product flag by default.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5059
Specifying \f[CB]+UnlockDiagnosticVMOptions\f[R] for
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5060
\f[CB]SharedArchiveFile\f[R] is no longer needed in any configuration.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5061
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5062
Class Data Sharing (CDS)/AppCDS does not support archiving array classes
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5063
in a class list.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5064
When an array in the class list is encountered, CDS dump time gives the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5065
explicit error message:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5066
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5067
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5068
\f[CB]Preload\ Warning:\ Cannot\ find\f[R] \f[I]array_name\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5069
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5070
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5071
Although an array in the class list is not allowed, some array classes
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5072
can still be created at CDS/AppCDS dump time.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5073
Those arrays are created during the execution of the Java code used by
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5074
the Java class loaders (\f[CB]PlatformClassLoader\f[R] and the system
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5075
class loader) to load classes at dump time.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5076
The created arrays are archived with the rest of the loaded classes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5077
.SS Extending Class Data Sharing to Support the Module Path
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5078
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5079
In JDK 11, Class Data Sharing (CDS) has been improved to support
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5080
archiving classes from the module path.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5081
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5082
To create a CDS archive using the \f[CB]\-\-module\-path\f[R] VM option,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5083
use the following command line syntax:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5084
.RS 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5085
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5086
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5087
\f[CB]java\ \-Xshare:dump\ \-XX:SharedClassListFile=\f[R]\f[I]class_list_file\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5088
\f[CB]\-XX:SharedArchiveFile=\f[R]\f[I]shared_archive_file\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5089
\f[CB]\-\-module\-path=\f[R]\f[I]path_to_modular_jar\f[R] \f[CB]\-m\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5090
\f[I]module_name\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5091
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5092
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5093
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5094
To run with a CDS archive using the \f[CB]\-\-module\-path\f[R] VM option,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5095
use the following the command line syntax:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5096
.RS 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5097
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5098
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5099
\f[CB]java\ \-XX:SharedArchiveFile=\f[R]\f[I]shared_archive_file\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5100
\f[CB]\-\-module\-path=\f[R]\f[I]path_to_modular_jar\f[R] \f[CB]\-m\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5101
\f[I]module_name\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5102
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5103
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5104
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5105
The following table describes how the VM options related to module paths
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5106
can be used along with the \f[CB]\-Xshare\f[R] option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5107
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5108
.TS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5109
tab(@);
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5110
l l l.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5111
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5112
Option
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5113
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5114
\-Xshare:dump
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5115
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5116
\-Xshare:{on,auto}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5117
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5118
_
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5119
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5120
\f[CB]\-\-module\-path\f[R][1] \f[I]mp\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5121
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5122
Allowed
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5123
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5124
Allowed[2]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5125
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5126
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5127
\f[CB]\-\-module\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5128
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5129
Allowed
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5130
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5131
Allowed
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5132
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5133
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5134
\f[CB]\-\-add\-module\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5135
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5136
Allowed
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5137
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5138
Allowed
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5139
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5140
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5141
\f[CB]\-\-upgrade\-module\-path\f[R][3]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5142
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5143
Disallowed (exits if specified)
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5144
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5145
Allowed (disables CDS)
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5146
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5147
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5148
\f[CB]\-\-patch\-module\f[R][4]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5149
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5150
Disallowed (exits if specified)
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5151
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5152
Allowed (disables CDS)
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5153
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5154
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5155
\f[CB]\-\-limit\-modules\f[R][5]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5156
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5157
Disallowed (exits if specified)
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5158
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5159
Allowed (disables CDS)
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5160
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5161
.TE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5162
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5163
[1] Although there are two ways of specifying a module in a
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5164
\f[CB]\-\-module\-path\f[R], that is, modular JAR or exploded module, only
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5165
modular JARs are supported.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5166
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5167
[2] Different \f[I]mp\f[R] can be specified during dump time versus run
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5168
time.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5169
If an archived class K was loaded from \f[CB]mp1.jar\f[R] at dump time,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5170
but changes in \f[I]mp\f[R] cause it to be available from a different
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5171
\f[CB]mp2.jar\f[R] at run time, then the archived version of K will be
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5172
disregarded at run time; K will be loaded dynamically.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5173
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5174
[3] Currently, only two system modules are upgradeable
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5175
(\f[CB]java.compiler\f[R] and \f[CB]jdk.internal.vm.compiler\f[R]).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5176
However, these modules are seldom upgraded in production software.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5177
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5178
[4] As documented in JEP 261, using \f[CB]\-\-patch\-module\f[R] is
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5179
strongly discouraged for production use.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5180
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5181
[5] \f[CB]\-\-limit\-modules\f[R] is intended for testing purposes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5182
It is seldom used in production software.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5183
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5184
If \f[CB]\-\-upgrade\-module\-path\f[R], \f[CB]\-\-patch\-module\f[R], or
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5185
\f[CB]\-\-limit\-modules\f[R] is specified at dump time, an error will be
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5186
printed and the JVM will exit.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5187
For example, if the \f[CB]\-\-limit\-modules\f[R] option is specified at
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5188
dump time, the user will see the following error:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5189
.IP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5190
.nf
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5191
\f[CB]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5192
Error\ occurred\ during\ initialization\ of\ VM
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5193
Cannot\ use\ the\ following\ option\ when\ dumping\ the\ shared\ archive:\ \-\-limit\-modules
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5194
\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5195
.fi
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5196
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5197
If \f[CB]\-\-upgrade\-module\-path\f[R], \f[CB]\-\-patch\-module\f[R], or
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5198
\f[CB]\-\-limit\-modules\f[R] is specified at run time, a warning message
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5199
will be printed indicating that CDS is disabled.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5200
For example, if the \f[CB]\-\-limit\-modules\f[R] options is specified at
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5201
run time, the user will see the following warning:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5202
.IP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5203
.nf
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5204
\f[CB]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5205
Java\ HotSpot(TM)\ 64\-Bit\ Server\ VM\ warning:\ CDS\ is\ disabled\ when\ the\ \-\-limit\-modules\ option\ is\ specified.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5206
\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5207
.fi
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5208
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5209
Several other noteworthy things include:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5210
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5211
Any valid combinations of \f[CB]\-cp\f[R] and \f[CB]\-\-module\-path\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5212
are supported.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5213
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5214
A non\-empty directory in the module path causes a fatal error.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5215
The user will see the following error messages:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5216
.RS 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5217
.IP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5218
.nf
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5219
\f[CB]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5220
Error:\ non\-empty\ directory\ <directory>\ Hint:\ enable\ \-Xlog:class+path=info\ to\ diagnose\ the\ failure\ Error\ occurred\ during\ initialization\ of\ VM\ Cannot\ have\ non\-empty\ directory\ in\ paths
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5221
\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5222
.fi
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5223
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5224
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5225
Unlike the class path, there\[aq]s no restriction that the module path
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5226
at dump time must be equal to or be a prefix of the module path at run
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5227
time.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5228
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5229
The archive is invalidated if an existing JAR in the module path is
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5230
updated after archive generation.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5231
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5232
Removing a JAR from the module path does not invalidate the shared
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5233
archive.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5234
Archived classes from the removed JAR are not used at runtime.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5235
.SS Dynamic CDS archive
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5236
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5237
Dynamic CDS archive extends AppCDS to allow archiving of classes when a
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5238
Java application exits.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5239
It improves the usability of AppCDS by eliminating the trial run step
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5240
for creating a class list for each application.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5241
The archived classes include all loaded application classes and library
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5242
classes that are not present in the default CDS archive which is
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5243
included in the JDK.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5244
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5245
A base archive is required when creating a dynamic archive.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5246
If the base archive is not specified, the default CDS archive is used as
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5247
the base archive.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5248
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5249
To create a dynamic CDS archive with the default CDS archive as the base
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5250
archive, just add the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5251
\f[CB]\-XX:ArchiveClassesAtExit=<dynamic\ archive>\f[R] option to the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5252
command line for running the Java application.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5253
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5254
If the default CDS archive does not exist, the VM will exit with the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5255
following error:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5256
.IP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5257
.nf
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5258
\f[CB]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5259
ArchiveClassesAtExit\ not\ supported\ when\ base\ CDS\ archive\ is\ not\ loaded
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5260
\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5261
.fi
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5262
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5263
To run the Java application using a dynamic CDS archive, just add the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5264
\f[CB]\-XX:SharedArchiveFile=<dynamic\ archive>\f[R] option to the command
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5265
line for running the Java application.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5266
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5267
The base archive is not required to be specified in the command line.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5268
The base archive information, including its name and full path, will be
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5269
retrieved from the dynamic archive header.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5270
Note that the user could also use the \f[CB]\-XX:SharedArchiveFile\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5271
option for specifying a regular AppCDS archive.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5272
Therefore, the specified archive in the \f[CB]\-XX:SharedArchiveFile\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5273
option could be either a regular or dynamic archive.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5274
During VM start up the specified archive header will be read.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5275
If \f[CB]\-XX:SharedArchiveFile\f[R] refers to a regular archive, then the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5276
behavior will be unchanged.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5277
If \f[CB]\-XX:SharedArchiveFile\f[R] refers to a dynamic archive, the VM
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5278
will retrieve the base archive location from the dynamic archive.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5279
If the dynamic archive was created with the default CDS archive, then
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5280
the current default CDS archive will be used, and will be found relative
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5281
to the current run time environment.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5282
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5283
Please refer to \f[B]JDK\-8221706\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5284
[https://bugs.openjdk.java.net/browse/JDK\-8221706] for details on error
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5285
checking during dynamic CDS archive dump time and run time.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5286
.SS Creating a Shared Archive File and Using It to Run an Application
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5287
.SS AppCDS archive
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5288
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5289
The following steps create a shared archive file that contains all the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5290
classes used by the \f[CB]test.Hello\f[R] application.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5291
The last step runs the application with the shared archive file.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5292
.IP "1." 3
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5293
Create a list of all classes used by the \f[CB]test.Hello\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5294
application.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5295
The following command creates a file named \f[CB]hello.classlist\f[R] that
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5296
contains a list of all classes used by this application:
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  5297
.RS 4
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5298
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5299
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5300
\f[CB]java\ \-Xshare:off\ \-XX:DumpLoadedClassList=hello.classlist\ \-cp\ hello.jar\ test.Hello\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5301
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5302
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5303
Note that the classpath specified by the \f[CB]\-cp\f[R] parameter must
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5304
contain only JAR files.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5305
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5306
.IP "2." 3
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5307
Create a shared archive, named \f[CB]hello.jsa\f[R], that contains all the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5308
classes in \f[CB]hello.classlist\f[R]:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5309
.RS 4
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5310
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5311
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5312
\f[CB]java\ \-Xshare:dump\ \-XX:SharedArchiveFile=hello.jsa\ \-XX:SharedClassListFile=hello.classlist\ \-cp\ hello.jar\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5313
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5314
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5315
Note that the classpath used at archive creation time must be the same
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5316
as (or a prefix of) the classpath used at run time.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5317
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5318
.IP "3." 3
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5319
Run the application \f[CB]test.Hello\f[R] with the shared archive
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5320
\f[CB]hello.jsa\f[R]:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5321
.RS 4
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5322
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5323
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5324
\f[CB]java\ \-XX:SharedArchiveFile=hello.jsa\ \-cp\ hello.jar\ test.Hello\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5325
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5326
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5327
.IP "4." 3
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5328
\f[B]Optional\f[R] Verify that the \f[CB]test.Hello\f[R] application is
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5329
using the class contained in the \f[CB]hello.jsa\f[R] shared archive:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5330
.RS 4
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5331
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5332
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5333
\f[CB]java\ \-XX:SharedArchiveFile=hello.jsa\ \-cp\ hello.jar\ \-verbose:class\ test.Hello\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5334
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5335
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5336
The output of this command should contain the following text:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5337
.IP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5338
.nf
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5339
\f[CB]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5340
Loaded\ test.Hello\ from\ shared\ objects\ file\ by\ sun/misc/Launcher$AppClassLoader
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5341
\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5342
.fi
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5343
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5344
.SS Dynamic CDS archive
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5345
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5346
The following steps create a dynamic CDS archive file that contains the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5347
classes used by the \f[CB]test.Hello\f[R] application and are not included
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5348
in the default CDS archive.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5349
The second step runs the application with the dynamic CDS archive.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5350
.IP "1." 3
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5351
Create a dynamic CDS archive, named \f[CB]hello.jsa\f[R], that contains
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5352
all the classes in \f[CB]hello.jar\f[R] loaded by the application
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5353
\f[CB]test.Hello\f[R]:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5354
.RS 4
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5355
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5356
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5357
\f[CB]java\ \-XX:ArchiveClassesAtExit=hello.jsa\ \-cp\ hello.jar\ Hello\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5358
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5359
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5360
Note that the classpath used at archive creation time must be the same
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5361
as (or a prefix of) the classpath used at run time.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5362
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5363
.IP "2." 3
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5364
Run the application \f[CB]test.Hello\f[R] with the shared archive
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5365
\f[CB]hello.jsa\f[R]:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5366
.RS 4
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5367
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5368
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5369
\f[CB]java\ \-XX:SharedArchiveFile=hello.jsa\ \-cp\ hello.jar\ test.Hello\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5370
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5371
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5372
.IP "3." 3
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5373
\f[B]Optional\f[R] Repeat step 4 of the previous section to verify that
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5374
the \f[CB]test.Hello\f[R] application is using the class contained in the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5375
\f[CB]hello.jsa\f[R] shared archive.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5376
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5377
To automate the above steps 1 and 2, one can write a script such as the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5378
following:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5379
.IP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5380
.nf
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5381
\f[CB]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5382
\ \ \ \ ARCHIVE=hello.jsa
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5383
\ \ \ \ if\ test\ \-f\ $ARCHIVE;\ then
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5384
\ \ \ \ \ \ \ \ FLAG="\-XX:SharedArchiveFile=$ARCHIVE"
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5385
\ \ \ \ else
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5386
\ \ \ \ \ \ \ \ FLAG="\-XX:ArchiveClassesAtExit=$ARCHIVE"
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5387
\ \ \ \ fi
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5388
\ \ \ \ $JAVA_HOME/bin/java\ \-cp\ hello.jar\ $FLAG\ test.Hello
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5389
\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5390
.fi
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5391
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5392
Like an AppCDS archive, the archive needs to be re\-generated if the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5393
Java version has changed.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5394
The above script could be adjusted to account for the Java version as
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5395
follows:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5396
.IP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5397
.nf
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5398
\f[CB]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5399
\ \ \ \ ARCHIVE=hello.jsa
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5400
\ \ \ \ VERSION=foo.version
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5401
\ \ \ \ if\ test\ \-f\ $ARCHIVE\ \-a\ \-f\ $VERSION\ &&\ cmp\ \-s\ $VERSION\ $JAVA_HOME/release;\ then
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5402
\ \ \ \ \ \ \ \ FLAG="\-XX:SharedArchiveFile=$ARCHIVE"
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5403
\ \ \ \ else
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5404
\ \ \ \ \ \ \ \ FLAG="\-XX:ArchiveClassesAtExit=$ARCHIVE"
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5405
\ \ \ \ \ \ \ \ cp\ \-f\ $JAVA_HOME/release\ $VERSION
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5406
\ \ \ \ fi
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5407
\ \ \ \ $JAVA_HOME/bin/java\ \-cp\ hello.jar\ $FLAG\ test.Hello
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5408
\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5409
.fi
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5410
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5411
Currently, we don\[aq]t support concurrent dumping operations to the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5412
same CDS archive.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5413
Care should be taken to avoid multiple writers to the same CDS archive.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5414
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5415
The user could also create a dynamic CDS archive with a specific base
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5416
archive, e.g.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5417
named as \f[CB]base.jsa\f[R] as follows:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5418
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5419
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5420
\f[CB]java\ \-XX:SharedArchiveFile=base.jsa\ \-XX:ArchiveClassesAtExit=hello.jsa\ \-cp\ hello.jar\ Hello\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5421
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5422
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5423
To run the application using the dynamic CDS archive \f[CB]hello.jsa\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5424
and a specific base CDS archive \f[CB]base.jsa\f[R]:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5425
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5426
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5427
\f[CB]java\ \-XX:SharedArchiveFile=base.jsa:hello.jsa\ \-cp\ hello.jar\ Hello\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5428
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5429
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5430
Note that on Windows, the above path delimiter \f[CB]:\f[R] should be
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5431
replaced with \f[CB];\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5432
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5433
The above command for specifying a base archive is useful if the base
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5434
archive used for creating the dynamic archive has been moved.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5435
Normally, just specifying the dynamic archive should be sufficient since
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5436
the base archive info can be retrieved from the dynamic archive header.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5437
.SS Sharing a Shared Archive Across Multiple Application Processes
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5438
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5439
You can share the same archive file across multiple applications
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5440
processes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5441
This reduces memory usage because the archive is memory\-mapped into the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5442
address space of the processes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5443
The operating system automatically shares the read\-only pages across
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5444
these processes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5445
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5446
The following steps demonstrate how to create a common archive that can
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5447
be shared by different applications.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5448
Classes from \f[CB]common.jar\f[R], \f[CB]hello.jar\f[R] and \f[CB]hi.jar\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5449
are archived in the \f[CB]common.jsa\f[R] because they are all in the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5450
classpath during the archiving step (step 3).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5451
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5452
To include classes from \f[CB]hello.jar\f[R] and \f[CB]hi.jar\f[R], the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5453
\f[CB]\&.jar\f[R] files must be added to the classpath specified by the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5454
\f[CB]\-cp\f[R] parameter.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5455
.IP "1." 3
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5456
Create a list of all classes used by the \f[CB]Hello\f[R] application and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5457
another list for the \f[CB]Hi\f[R] application:
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  5458
.RS 4
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5459
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5460
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5461
\f[CB]java\ \-XX:DumpLoadedClassList=hello.classlist\ \-cp\ common.jar:hello.jar\ Hello\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5462
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5463
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5464
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5465
\f[CB]java\ \-XX:DumpLoadedClassList=hi.classlist\ \-cp\ common.jar:hi.jar\ Hi\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5466
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5467
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5468
.IP "2." 3
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5469
Create a single list of classes used by all the applications that will
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5470
share the shared archive file.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5471
.RS 4
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5472
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5473
\f[B]Oracle Solaris, Linux, and macOS\f[R] The following commands combine
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5474
the files \f[CB]hello.classlist\f[R] and \f[CB]hi.classlist\f[R] into one
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5475
file, \f[CB]common.classlist\f[R]:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5476
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5477
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5478
\f[CB]cat\ hello.classlist\ hi.classlist\ >\ common.classlist\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5479
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5480
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5481
\f[B]Windows\f[R] The following commands combine the files
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5482
\f[CB]hello.classlist\f[R] and \f[CB]hi.classlist\f[R] into one file,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5483
\f[CB]common.classlist\f[R]:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5484
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5485
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5486
\f[CB]type\ hello.classlist\ hi.classlist\ >\ common.classlist\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5487
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5488
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5489
.IP "3." 3
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5490
Create a shared archive named \f[CB]common.jsa\f[R] that contains all the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5491
classes in \f[CB]common.classlist\f[R]:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5492
.RS 4
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5493
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5494
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5495
\f[CB]java\ \-Xshare:dump\ \-XX:SharedArchiveFile=common.jsa\ \-XX:SharedClassListFile=common.classlist\ \-cp\ common.jar:hello.jar:hi.jar\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5496
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5497
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5498
The classpath parameter used is the common class path prefix shared by
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5499
the \f[CB]Hello\f[R] and \f[CB]Hi\f[R] applications.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5500
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5501
.IP "4." 3
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5502
Run the \f[CB]Hello\f[R] and \f[CB]Hi\f[R] applications with the same shared
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5503
archive:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5504
.RS 4
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5505
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5506
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5507
\f[CB]java\ \-XX:SharedArchiveFile=common.jsa\ \-cp\ common.jar:hello.jar:hi.jar\ Hello\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5508
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5509
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5510
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5511
\f[CB]java\ \-XX:SharedArchiveFile=common.jsa\ \-cp\ common.jar:hello.jar:hi.jar\ Hi\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5512
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5513
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5514
.SS Specifying Additional Shared Data Added to an Archive File
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5515
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5516
The \f[CB]SharedArchiveConfigFile\f[R] option is used to specify
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5517
additional shared data to add to the archive file.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5518
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5519
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5520
\f[CB]\-XX:SharedArchiveConfigFile=\f[R]\f[I]shared_config_file\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5521
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5522
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5523
JDK 9 and later supports adding both symbols and\ string objects to an
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5524
archive for memory sharing\ when you have multiple JVM processes running
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5525
on the same host.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5526
An example of this is having multiple JVM processes that use the same
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5527
set of Java EE classes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5528
When these common classes are loaded and used, new symbols and strings
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5529
may be created and added to the JVM\[aq]s internal "symbol" and "string"
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5530
tables.\ At runtime, the symbols or string objects mapped from the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5531
archive file can be shared across multiple JVM processes, resulting in a
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5532
reduction of overall memory usage.\ In addition, archiving strings also
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5533
provides added performance benefits in both startup time and runtime
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5534
execution.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5535
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5536
In JDK 10 and later, CONSTANT_String entries in archived classes are
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5537
resolved to interned String objects at dump time, and all interned
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5538
String objects are archived.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5539
However, even though all CONSTANT_String literals in all archived
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5540
classes are resolved, it might still beneficial to add additional
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5541
strings that are not string literals in class files, but are likely to
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5542
be used by your application at run time.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5543
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5544
Symbol data should be generated by the \f[CB]jcmd\f[R] tool attaching to a
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5545
running JVM process.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5546
See \f[B]jcmd\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5547
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5548
The following is an example of the symbol dumping command in
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5549
\f[CB]jcmd\f[R]:\ 
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5550
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5551
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5552
\f[CB]jcmd\f[R] \f[I]pid\f[R] \f[CB]VM.symboltable\ \-verbose\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5553
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5554
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5555
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5556
\f[B]Note:\f[R] The first line (process ID) and the second line
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5557
(\f[CB]\@VERSION\ ...\f[R]) of this \f[CB]jcmd\f[R] output should be
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5558
excluded from the configuration file.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5559
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5560
.SS Example of a Configuration File
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5561
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5562
The following is an example of a configuration file:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5563
.IP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5564
.nf
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5565
\f[CB]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5566
VERSION:\ 1.0
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5567
\@SECTION:\ Symbol
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5568
10\ \-1:\ linkMethod
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5569
\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5570
.fi
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5571
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5572
In the configuration file example, the \f[CB]\@SECTION:\ Symbol\f[R] entry
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5573
uses the following format:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5574
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5575
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5576
\f[I]length\f[R] \f[I]refcount\f[R]\f[CB]:\f[R] \f[I]symbol\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5577
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5578
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5579
The \f[I]refcount\f[R] for a shared symbol is always \f[CB]\-1\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5580
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5581
\f[CB]\@SECTION\f[R] specifies the type of the section that follows it.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5582
All data within the section must be the same type that\[aq]s specified
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5583
by \f[CB]\@SECTION\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5584
Different types of data can\[aq]t be mixed.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5585
Multiple separated data sections for the same type specified by
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5586
different \f[CB]\@SECTION\f[R] are allowed within one
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5587
\f[CB]shared_config_file\f[R] .
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5588
.SH PERFORMANCE TUNING EXAMPLES
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5589
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5590
You can use the Java advanced runtime options to optimize the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5591
performance of your applications.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5592
.SS Tuning for Higher Throughput
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5593
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5594
Use the following commands and advanced options to achieve higher
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5595
throughput performance for your application:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5596
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5597
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5598
\f[CB]java\ \-server\ \-XX:+UseParallelGC\ \-XX:+UseLargePages\ \-Xmn10g\ \ \-Xms26g\ \-Xmx26g\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5599
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5600
.SS Tuning for Lower Response Time
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5601
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5602
Use the following commands and advanced options to achieve lower
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5603
response times for your application:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5604
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5605
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5606
\f[CB]java\ \-XX:+UseG1GC\ \-Xms26g\ Xmx26g\ \-XX:MaxGCPauseMillis=500\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5607
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5608
.SS Keeping the Java Heap Small and Reducing the Dynamic Footprint of
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5609
Embedded Applications
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5610
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5611
Use the following advanced runtime options to keep the Java heap small
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5612
and reduce the dynamic footprint of embedded applications:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5613
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5614
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5615
\f[CB]\-XX:MaxHeapFreeRatio=10\ \-XX:MinHeapFreeRatio=5\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5616
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5617
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5618
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5619
\f[B]Note:\f[R] The defaults for these two options are 70% and 40%
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5620
respectively.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5621
Because performance sacrifices can occur when using these small
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5622
settings, you should optimize for a small footprint by reducing these
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5623
settings as much as possible without introducing unacceptable
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5624
performance degradation.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5625
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5626
.SH EXIT STATUS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5627
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5628
The following exit values are typically returned by the launcher when
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5629
the launcher is called with the wrong arguments, serious errors, or
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5630
exceptions thrown by the JVM.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5631
However, a Java application may choose to return any value by using the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5632
API call \f[CB]System.exit(exitValue)\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5633
The values are:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5634
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5635
\f[CB]0\f[R]: Successful completion
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5636
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5637
\f[CB]>0\f[R]: An error occurred