src/java.base/share/man/java.1
author chegar
Thu, 17 Oct 2019 20:54:25 +0100
branchdatagramsocketimpl-branch
changeset 58679 9c3209ff7550
parent 58678 9cf78a70fa4f
parent 57571 0a4829e4ad6b
permissions -rw-r--r--
datagramsocketimpl-branch: merge with default
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.
55666
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
   112
It does this by starting the Java Virtual Machine (JVM), loading the
55140
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
55666
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
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]:\f[R][\f[I]packagename\f[R]]...|\f[CB]:\f[R]\f[I]classname\f[R]]
55140
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
55666
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
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]:\f[R][\f[I]packagename\f[R]]...|\f[CB]:\f[R]\f[I]classname\f[R]]
55140
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.
55666
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
   662
See \f[CB]java.lang.instrument\f[R].
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   663
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   664
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   665
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   666
.B \f[CB]\-\-show\-version\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   667
Prints the product version to the output stream and continues.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   668
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   669
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   670
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   671
.B \f[CB]\-showversion\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   672
Prints the product version to the error stream and continues.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   673
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   674
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   675
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   676
.B \f[CB]\-\-show\-module\-resolution\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   677
Shows module resolution output during startup.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   678
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   679
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   680
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   681
.B \f[CB]\-splash:\f[R]\f[I]imagepath\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   682
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
   683
HiDPI scaled images are automatically supported and used if available.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   684
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
   685
be passed as the argument to the \f[CB]\-splash\f[R] option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   686
The most appropriate scaled image provided is picked up automatically.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   687
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   688
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   689
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
   690
\f[CB]images\f[R] directory when starting your application, use the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   691
following option:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   692
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   693
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   694
\f[CB]\-splash:images/splash.gif\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   695
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   696
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   697
See the SplashScreen API documentation for more information.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   698
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   699
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   700
.B \f[CB]\-verbose:class\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   701
Displays information about each loaded class.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   702
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   703
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   704
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   705
.B \f[CB]\-verbose:gc\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   706
Displays information about each garbage collection (GC) event.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   707
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   708
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   709
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   710
.B \f[CB]\-verbose:jni\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   711
Displays information about the use of native methods and other Java
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   712
Native Interface (JNI) activity.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   713
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   714
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   715
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   716
.B \f[CB]\-verbose:module\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   717
Displays information about the modules in use.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   718
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   719
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   720
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   721
.B \f[CB]\-\-version\f[R]
55666
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
   722
Prints product version to the output stream and exits.
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   723
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   724
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   725
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   726
.B \f[CB]\-version\f[R]
55666
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
   727
Prints product version to the error stream and exits.
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   728
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   729
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   730
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   731
.B \f[CB]\-X\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   732
Prints the help on extra options to the error stream.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   733
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   734
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   735
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   736
.B \f[CB]\-\-help\-extra\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   737
Prints the help on extra options to the output stream.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   738
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   739
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   740
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   741
.B \f[CB]\@\f[R]\f[I]argfile\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   742
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
   743
\f[CB]java\f[R] command.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   744
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
   745
because of the \f[CB]\&.jar\f[R] files needed in the classpath.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   746
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
   747
limitations by enabling the launcher to expand the contents of argument
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   748
files after shell expansion, but before argument processing.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   749
Contents in the argument files are expanded because otherwise, they
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   750
would be specified on the command line until the
55666
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
   751
\f[CB]\-\-disable\-\@files\f[R] option was encountered.
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   752
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   753
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   754
The argument files can also contain the main class name and all options.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   755
If an argument file contains all of the options required by the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   756
\f[CB]java\f[R] command, then the command line could simply be:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   757
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   758
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   759
\f[CB]java\ \@\f[R]\f[I]argfile\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   760
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   761
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   762
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
   763
examples of using \f[CB]\@\f[R]\-argfiles.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   764
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   765
.SH EXTRA OPTIONS FOR JAVA
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   766
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   767
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
   768
specific to the Java HotSpot Virtual Machine.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   769
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   770
.B \f[CB]\-Xbatch\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   771
Disables background compilation.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   772
By default, the JVM compiles the method as a background task, running
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   773
the method in interpreter mode until the background compilation is
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   774
finished.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   775
The \f[CB]\-Xbatch\f[R] flag disables background compilation so that
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   776
compilation of all methods proceeds as a foreground task until
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   777
completed.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   778
This option is equivalent to \f[CB]\-XX:\-BackgroundCompilation\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   779
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   780
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   781
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   782
.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
   783
Specifies a list of directories, JAR files, and ZIP archives to append
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   784
to the end of the default bootstrap class path.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   785
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   786
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   787
\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
   788
entities in this list.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   789
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   790
\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
   791
list.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   792
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   793
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   794
.B \f[CB]\-Xcheck:jni\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   795
Performs additional checks for Java Native Interface (JNI) functions.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   796
Specifically, it validates the parameters passed to the JNI function and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   797
the runtime environment data before processing the JNI request.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   798
It also checks for pending exceptions between JNI calls.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   799
Any invalid data encountered indicates a problem in the native code, and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   800
the JVM terminates with an irrecoverable error in such cases.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   801
Expect a performance degradation when this option is used.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   802
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   803
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   804
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   805
.B \f[CB]\-Xcomp\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   806
Forces compilation of methods on first invocation.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   807
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
   808
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
   809
interpreted method invocations to gather information for efficient
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   810
compilation.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   811
Specifying the \f[CB]\-Xcomp\f[R] option disables interpreted method
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   812
invocations to increase compilation performance at the expense of
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   813
efficiency.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   814
You can also change the number of interpreted method invocations before
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   815
compilation using the \f[CB]\-XX:CompileThreshold\f[R] option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   816
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   817
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   818
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   819
.B \f[CB]\-Xdebug\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   820
Does nothing.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   821
Provided for backward compatibility.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   822
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   823
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   824
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   825
.B \f[CB]\-Xdiag\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   826
Shows additional diagnostic messages.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   827
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   828
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   829
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   830
.B \f[CB]\-Xint\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   831
Runs the application in interpreted\-only mode.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   832
Compilation to native code is disabled, and all bytecode is executed by
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   833
the interpreter.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   834
The performance benefits offered by the just\-in\-time (JIT) compiler
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   835
aren\[aq]t present in this mode.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   836
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   837
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   838
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   839
.B \f[CB]\-Xinternalversion\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   840
Displays more detailed JVM version information than the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   841
\f[CB]\-version\f[R] option, and then exits.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   842
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   843
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   844
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   845
.B \f[CB]\-Xlog:\f[R]\f[I]option\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   846
Configure or enable logging with the Java Virtual Machine (JVM) unified
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   847
logging framework.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   848
See \f[B]Enable Logging with the JVM Unified Logging Framework\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   849
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   850
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   851
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   852
.B \f[CB]\-Xmixed\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   853
Executes all bytecode by the interpreter except for hot methods, which
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   854
are compiled to native code.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   855
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   856
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   857
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   858
.B \f[CB]\-Xmn\f[R] \f[I]size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   859
Sets the initial and maximum size (in bytes) of the heap for the young
55666
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
   860
generation (nursery) in the generational collectors.
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   861
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
   862
\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
   863
\f[CB]G\f[R] to indicate gigabytes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   864
The young generation region of the heap is used for new objects.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   865
GC is performed in this region more often than in other regions.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   866
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
   867
garbage collections are performed.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   868
If the size is too large, then only full garbage collections are
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   869
performed, which can take a long time to complete.
55666
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
   870
It is recommended that you do not set the size for the young generation
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
   871
for the G1 collector, and keep the size for the young generation greater
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
   872
than 25% and less than 50% of the overall heap size for other
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
   873
collectors.
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   874
The following examples show how to set the initial and maximum size of
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   875
young generation to 256 MB using various units:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   876
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   877
.IP
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
   878
.nf
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   879
\f[CB]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   880
\-Xmn256m
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   881
\-Xmn262144k
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   882
\-Xmn268435456
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   883
\f[R]
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
   884
.fi
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   885
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   886
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
   887
size of the heap for the young generation, you can use
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   888
\f[CB]\-XX:NewSize\f[R] to set the initial size and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   889
\f[CB]\-XX:MaxNewSize\f[R] to set the maximum size.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   890
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   891
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   892
.B \f[CB]\-Xms\f[R] \f[I]size\f[R]
55666
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
   893
Sets the minimum and initial size (in bytes) of the heap.
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   894
This value must be a multiple of 1024 and greater than 1 MB.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   895
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
   896
\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
   897
to indicate gigabytes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   898
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
   899
MB using various units:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   900
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   901
.IP
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
   902
.nf
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   903
\f[CB]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   904
\-Xms6291456
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   905
\-Xms6144k
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   906
\-Xms6m
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   907
\f[R]
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
   908
.fi
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   909
.PP
55666
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
   910
Instead of the \f[CB]\-Xms\f[R] option to set both the minimum and initial
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
   911
size of the heap, you can use \f[CB]\-XX:MinHeapSize\f[R] to set the
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
   912
minimum size and \f[CB]\-XX:InitialHeapSize\f[R] to set the initial size.
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
   913
.PP
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
   914
If you don\[aq]t set this option, the initial size is set as the sum of
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
   915
the sizes allocated for the old generation and the young generation.
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   916
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
   917
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
   918
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   919
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   920
.B \f[CB]\-Xmx\f[R] \f[I]size\f[R]
55666
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
   921
Specifies the maximum size (in bytes) of the heap.
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   922
This value must be a multiple of 1024 and greater than 2 MB.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   923
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
   924
\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
   925
\f[CB]G\f[R] to indicate gigabytes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   926
The default value is chosen at runtime based on system configuration.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   927
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
   928
to the same value.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   929
The following examples show how to set the maximum allowed size of
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   930
allocated memory to 80 MB using various units:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   931
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   932
.IP
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
   933
.nf
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   934
\f[CB]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   935
\-Xmx83886080
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   936
\-Xmx81920k
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   937
\-Xmx80m
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   938
\f[R]
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
   939
.fi
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   940
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   941
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
   942
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   943
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   944
.B \f[CB]\-Xnoclassgc\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   945
Disables garbage collection (GC) of classes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   946
This can save some GC time, which shortens interruptions during the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   947
application run.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   948
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
   949
the application are left untouched during GC and are always be
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   950
considered live.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   951
This can result in more memory being permanently occupied which, if not
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   952
used carefully, throws an out\-of\-memory exception.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   953
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   954
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   955
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   956
.B \f[CB]\-Xrs\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   957
Reduces the use of operating system signals by the JVM.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   958
Shutdown hooks enable the orderly shutdown of a Java application by
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   959
running user cleanup code (such as closing database connections) at
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   960
shutdown, even if the JVM terminates abruptly.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   961
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   962
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   963
\f[B]Oracle Solaris, Linux, and macOS:\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   964
.RS 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   965
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   966
The JVM catches signals to implement shutdown hooks for unexpected
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   967
termination.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   968
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
   969
initiate the running of shutdown hooks.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   970
.IP \[bu] 2
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
   971
Applications embedding the JVM frequently need to trap signals such as
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   972
\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
   973
the JVM signal handlers.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   974
The \f[CB]\-Xrs\f[R] option is available to address this issue.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   975
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
   976
\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
   977
changed by the JVM, and signal handlers for these signals aren\[aq]t
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   978
installed.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   979
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   980
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   981
\f[B]Windows:\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   982
.RS 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   983
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   984
The JVM watches for console control events to implement shutdown hooks
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   985
for unexpected termination.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   986
Specifically, the JVM registers a console control handler that begins
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   987
shutdown\-hook processing and returns \f[CB]TRUE\f[R] for
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   988
\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
   989
\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
   990
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   991
The JVM uses a similar mechanism to implement the feature of dumping
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   992
thread stacks for debugging purposes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   993
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
   994
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   995
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
   996
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
   997
shouldn\[aq]t initiate shutdown because the operating system doesn\[aq]t
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   998
actually terminate the process.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
   999
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
  1000
can be used.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1001
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
  1002
console control handler, implying that it doesn\[aq]t watch for or
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1003
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
  1004
\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
  1005
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1006
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1007
There are two consequences of specifying \f[CB]\-Xrs\f[R]:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1008
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1009
\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
  1010
aren\[aq]t available.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1011
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1012
\f[B]Windows:\f[R] Ctrl + Break thread dumps aren\[aq]t available.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1013
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1014
User code is responsible for causing shutdown hooks to run, for example,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1015
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
  1016
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1017
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1018
.B \f[CB]\-Xshare:\f[R]\f[I]mode\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1019
Sets the class data sharing (CDS) mode.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1020
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1021
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1022
Possible \f[I]mode\f[R] arguments for this option include the following:
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]auto\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1025
Use shared class data if possible (default).
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
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1029
.B \f[CB]on\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1030
Require using shared class data, otherwise fail.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1031
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1032
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1033
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1034
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1035
\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
  1036
purposes only and may cause intermittent failures due to the use of
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1037
address space layout randomization by the operation system.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1038
This option should not be used in production environments.
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
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1041
.B \f[CB]off\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1042
Do not attempt to use shared class data.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1043
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1044
.RE
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]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1048
Shows all settings and then continues.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1049
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1050
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1051
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1052
.B \f[CB]\-XshowSettings:\f[R]\f[I]category\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1053
Shows settings and continues.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1054
Possible \f[I]category\f[R] arguments for this option include the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1055
following:
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
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1058
.B \f[CB]all\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1059
Shows all categories of settings.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1060
This is the default value.
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]locale\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1065
Shows settings related to locale.
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]properties\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1070
Shows settings related to system properties.
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]vm\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1075
Shows the settings of the JVM.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1076
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1077
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1078
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1079
.B \f[CB]system\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1080
\f[B]Linux:\f[R] Shows host system or container configuration and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1081
continues.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1082
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1083
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1084
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1085
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1086
.B \f[CB]\-Xss\f[R] \f[I]size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1087
Sets the thread stack size (in bytes).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1088
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
  1089
\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
  1090
The default value depends on the platform:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1091
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1092
.IP \[bu] 2
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  1093
Linux/x64 (64\-bit): 1024 KB
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1094
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1095
macOS (64\-bit): 1024 KB
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1096
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1097
Oracle Solaris (64\-bit): 1024 KB
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1098
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1099
Windows: The default value depends on virtual memory
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1100
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1101
The following examples set the thread stack size to 1024 KB in different
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1102
units:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1103
.IP
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  1104
.nf
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1105
\f[CB]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1106
\-Xss1m
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1107
\-Xss1024k
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1108
\-Xss1048576
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1109
\f[R]
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  1110
.fi
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1111
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1112
This option is similar to \f[CB]\-XX:ThreadStackSize\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1113
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1114
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1115
.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
  1116
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
  1117
of the module declaration.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1118
\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
  1119
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1120
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1121
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1122
.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
  1123
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
  1124
\f[I]target\-module\f[R], regardless of module declaration.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1125
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
  1126
modules.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1127
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1128
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1129
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1130
.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
  1131
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
  1132
\f[I]target\-module\f[R], regardless of module declaration.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1133
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1134
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1135
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1136
.B \f[CB]\-\-illegal\-access=\f[R]\f[I]parameter\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1137
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
  1138
\f[I]parameter\f[R] to specify a mode of operation:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1139
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1140
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1141
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1142
\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
  1143
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1144
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1145
\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
  1146
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
  1147
class path), if that package existed in JDK 8.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1148
This enables both static access, (for example, by compiled bytecode, and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1149
deep reflective access) through the platform\[aq]s various reflection
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1150
APIs.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1151
The first reflective\-access operation to any such package causes a
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1152
warning to be issued.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1153
However, no warnings are issued after the first occurrence.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1154
This single warning describes how to enable further warnings.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1155
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
  1156
release.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1157
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1158
\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
  1159
warning message is issued for each illegal reflective\-access operation.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1160
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1161
\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
  1162
a warning message and a stack trace are issued for each illegal
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1163
reflective\-access operation.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1164
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1165
\f[CB]deny\f[R]: This mode disables all illegal\-access operations except
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1166
for those enabled by other command\-line options, such as
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1167
\f[CB]\-\-add\-opens\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1168
This mode will become the default in a future release.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1169
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1170
The default mode, \f[CB]\-\-illegal\-access=permit\f[R], is intended to
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1171
make you aware of code on the class path that reflectively accesses any
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1172
JDK\-internal APIs at least once.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1173
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
  1174
\f[CB]debug\f[R] modes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1175
For each library or framework on the class path that requires illegal
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1176
access, you have two options:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1177
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1178
If the component\[aq]s maintainers have already released a fixed version
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1179
that no longer uses JDK\-internal APIs then you can consider upgrading
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1180
to that version.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1181
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1182
If the component still needs to be fixed, then you can contact its
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1183
maintainers and ask them to replace their use of JDK\-internal APIs with
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1184
the proper exported APIs.
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
If you must continue to use a component that requires illegal access,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1187
then you can eliminate the warning messages by using one or more
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1188
\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
  1189
which access is required.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1190
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1191
To verify that your application is ready for a future version of the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1192
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
  1193
necessary \f[CB]\-\-add\-opens\f[R] options.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1194
Any remaining illegal\-access errors will most likely be due to static
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1195
references from compiled code to JDK\-internal APIs.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1196
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
  1197
\f[CB]\-\-jdk\-internals\f[R] option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1198
For performance reasons, the current JDK does not issue warnings for
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1199
illegal static\-access operations.
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]\-\-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
  1203
Specifies the limit of the universe of observable modules.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1204
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1205
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1206
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1207
.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
  1208
Overrides or augments a module with classes and resources in JAR files
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1209
or directories.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1210
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1211
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1212
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1213
.B \f[CB]\-\-source\f[R] \f[I]version\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1214
Sets the version of the source in source\-file mode.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1215
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1216
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1217
.SH EXTRA OPTIONS FOR MACOS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1218
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1219
The following extra options are macOS specific.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1220
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1221
.B \f[CB]\-XstartOnFirstThread\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1222
Runs the \f[CB]main()\f[R] method on the first (AppKit) thread.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1223
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1224
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1225
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1226
.B \f[CB]\-Xdock:name=\f[R]\f[I]application_name\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1227
Overrides the default application name displayed in dock.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1228
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1229
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1230
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1231
.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
  1232
Overrides the default icon displayed in dock.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1233
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1234
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1235
.SH ADVANCED OPTIONS FOR JAVA
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1236
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1237
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
  1238
options.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1239
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1240
.B \f[CB]\-XX:+UnlockDiagnosticVMOptions\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1241
Unlocks the options intended for diagnosing the JVM.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1242
By default, this option is disabled and diagnostic options aren\[aq]t
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1243
available.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1244
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1245
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1246
Command line options that are enabled with the use of this option are
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1247
not supported.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1248
If you encounter issues while using any of these options, it is very
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1249
likely that you will be required to reproduce the problem without using
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1250
any of these unsupported options before Oracle Support can assist with
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1251
an investigation.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1252
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
  1253
behavior changed without any warning.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1254
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1255
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1256
.B \f[CB]\-XX:+UnlockExperimentalVMOptions\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1257
Unlocks the options that provide experimental features in the JVM.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1258
By default, this option is disabled and experimental features aren\[aq]t
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1259
available.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1260
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1261
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1262
.SH ADVANCED RUNTIME OPTIONS FOR JAVA
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1263
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1264
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
  1265
HotSpot VM.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1266
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1267
.B \f[CB]\-XX:ActiveProcessorCount=\f[R]\f[I]x\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1268
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
  1269
of thread pools it will use for various operations such as Garbage
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1270
Collection and ForkJoinPool.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1271
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1272
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1273
The VM normally determines the number of available processors from the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1274
operating system.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1275
This flag can be useful for partitioning CPU resources when running
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1276
multiple Java processes in docker containers.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1277
This flag is honored even if \f[CB]UseContainerSupport\f[R] is not
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1278
enabled.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1279
See \f[CB]\-XX:\-UseContainerSupport\f[R] for a description of enabling
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1280
and disabling container support.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1281
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1282
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1283
.B \f[CB]\-XX:AllocateHeapAt=\f[R]\f[I]path\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1284
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
  1285
object heap on the memory device.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1286
Using this option enables the HotSpot VM to allocate the Java object
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1287
heap on an alternative memory device, such as an NV\-DIMM, specified by
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1288
the user.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1289
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1290
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1291
Alternative memory devices that have the same semantics as DRAM,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1292
including the semantics of atomic operations, can be used instead of
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1293
DRAM for the object heap without changing the existing application code.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1294
All other memory structures (such as the code heap, metaspace, and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1295
thread stacks) continue to reside in DRAM.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1296
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1297
Some operating systems expose non\-DRAM memory through the file system.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1298
Memory\-mapped files in these file systems bypass the page cache and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1299
provide a direct mapping of virtual memory to the physical memory on the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1300
device.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1301
The existing heap related flags (such as \f[CB]\-Xmx\f[R] and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1302
\f[CB]\-Xms\f[R]) and garbage\-collection related flags continue to work
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1303
as before.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1304
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1305
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1306
.B \f[CB]\-XX:\-CompactStrings\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1307
Disables the Compact Strings feature.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1308
By default, this option is enabled.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1309
When this option is enabled, Java Strings containing only single\-byte
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1310
characters are internally represented and stored as
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1311
single\-byte\-per\-character Strings using ISO\-8859\-1 / Latin\-1
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1312
encoding.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1313
This reduces, by 50%, the amount of space required for Strings
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1314
containing only single\-byte characters.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1315
For Java Strings containing at least one multibyte character: these are
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1316
represented and stored as 2 bytes per character using UTF\-16 encoding.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1317
Disabling the Compact Strings feature forces the use of UTF\-16 encoding
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1318
as the internal representation for all Java Strings.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1319
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1320
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1321
Cases where it may be beneficial to disable Compact Strings include the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1322
following:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1323
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1324
When it\[aq]s known that an application overwhelmingly will be
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1325
allocating multibyte character Strings
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1326
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1327
In the unexpected event where a performance regression is observed in
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1328
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
  1329
Strings introduces the regression
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1330
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1331
In both of these scenarios, disabling Compact Strings makes sense.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1332
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1333
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1334
.B \f[CB]\-XX:ErrorFile=\f[R]\f[I]filename\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1335
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
  1336
irrecoverable error occurs.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1337
By default, this file is created in the current working directory and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1338
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
  1339
is the identifier of the process that encountered the error.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1340
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1341
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1342
The following example shows how to set the default log file (note that
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1343
the identifier of the process is specified as \f[CB]%p\f[R]):
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1344
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1345
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1346
\f[CB]\-XX:ErrorFile=./hs_err_pid%p.log\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1347
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1348
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1349
\f[B]Oracle Solaris, Linux, and macOS:\f[R] The following example shows
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1350
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
  1351
.RS 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1352
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1353
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1354
\f[CB]\-XX:ErrorFile=/var/log/java/java_error.log\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1355
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1356
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1357
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1358
\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
  1359
file to \f[CB]C:/log/java/java_error.log\f[R]:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1360
.RS 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1361
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1362
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1363
\f[CB]\-XX:ErrorFile=C:/log/java/java_error.log\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1364
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1365
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1366
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1367
If the file exists, and is writeable, then it will be overwritten.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1368
Otherwise, if the file can\[aq]t be created in the specified directory
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1369
(due to insufficient space, permission problem, or another issue), then
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1370
the file is created in the temporary directory for the operating system:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1371
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1372
\f[B]Oracle Solaris, Linux, and macOS:\f[R] The temporary directory is
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1373
\f[CB]/tmp\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1374
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1375
\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
  1376
the \f[CB]TMP\f[R] environment variable; if that environment variable
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1377
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
  1378
variable is used.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1379
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1380
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1381
.B \f[CB]\-XX:+ExtensiveErrorReports\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1382
Enables the reporting of more extensive error information in the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1383
\f[CB]ErrorFile\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1384
This option can be turned on in environments where maximal information
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1385
is desired \- even if the resulting logs may be quite large and/or
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1386
contain information that might be considered sensitive.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1387
The information can vary from release to release, and across different
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1388
platforms.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1389
By default this option is disabled.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1390
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1391
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1392
.TP
55666
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  1393
.B \f[CB]\-XX:FlightRecorderOptions=\f[R]\f[I]parameter\f[R]\f[CB]=\f[R]\f[I]value\f[R] (or)\f[CB]\-XX:FlightRecorderOptions:\f[R]\f[I]parameter\f[R]\f[CB]=\f[R]\f[I]value\f[R]
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1394
Sets the parameters that control the behavior of JFR.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1395
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1396
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1397
The following list contains the available JFR
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1398
\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
  1399
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1400
.B \f[CB]globalbuffersize=\f[R]\f[I]size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1401
Specifies the total amount of primary memory used for data retention.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1402
The default value is based on the value specified for
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1403
\f[CB]memorysize\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1404
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
  1405
buffers.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1406
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1407
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1408
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1409
.B \f[CB]maxchunksize=\f[R]\f[I]size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1410
Specifies the maximum size (in bytes) of the data chunks in a recording.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1411
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
  1412
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
  1413
By default, the maximum size of data chunks is set to 12 MB.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1414
The minimum allowed is 1 MB.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1415
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1416
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1417
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1418
.B \f[CB]memorysize=\f[R]\f[I]size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1419
Determines how much buffer memory should be used, and sets the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1420
\f[CB]globalbuffersize\f[R] and \f[CB]numglobalbuffers\f[R] parameters based
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1421
on the size specified.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1422
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
  1423
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
  1424
By default, the memory size is set to 10 MB.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1425
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1426
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1427
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1428
.B \f[CB]numglobalbuffers\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1429
Specifies the number of global buffers used.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1430
The default value is based on the memory size specified.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1431
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
  1432
buffers.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1433
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1434
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1435
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1436
.B \f[CB]old\-object\-queue\-size=number\-of\-objects\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1437
Maximum number of old objects to track.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1438
By default, the number of objects is set to 256.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1439
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1440
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1441
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1442
.B \f[CB]repository=\f[R]\f[I]path\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1443
Specifies the repository (a directory) for temporary disk storage.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1444
By default, the system\[aq]s temporary directory is used.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1445
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1446
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1447
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1448
.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
  1449
Specifies whether event classes should be retransformed using JVMTI.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1450
If false, instrumentation is added when event classes are loaded.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1451
By default, this parameter is enabled.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1452
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1453
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1454
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1455
.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
  1456
Specifies whether thread sampling is enabled.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1457
Thread sampling occurs only if the sampling event is enabled along with
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1458
this parameter.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1459
By default, this parameter is enabled.
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]stackdepth=\f[R]\f[I]depth\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1464
Stack depth for stack traces.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1465
By default, the depth is set to 64 method calls.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1466
The maximum is 2048.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1467
Values greater than 64 could create significant overhead and reduce
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1468
performance.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1469
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1470
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1471
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1472
.B \f[CB]threadbuffersize=\f[R]\f[I]size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1473
Specifies the per\-thread local buffer size (in bytes).
55666
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  1474
By default, the local buffer size is set to 8 kilobytes, with a minimum
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  1475
value of 4 kilobytes.
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1476
Overriding this parameter could reduce performance and is not
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1477
recommended.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1478
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1479
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1480
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1481
You can specify values for multiple parameters by separating them with a
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1482
comma.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1483
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1484
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1485
.B \f[CB]\-XX:LargePageSizeInBytes=\f[R]\f[I]size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1486
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
  1487
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
  1488
on).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1489
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
  1490
\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
  1491
\f[CB]G\f[R] to indicate gigabytes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1492
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
  1493
for large pages automatically.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1494
See \f[B]Large Pages\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1495
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1496
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1497
The following example describes how to set the large page size to 4
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1498
megabytes (MB):
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1499
.RS
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
\f[CB]\-XX:LargePageSizeInBytes=4m\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1502
.RE
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:MaxDirectMemorySize=\f[R]\f[I]size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1506
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
  1507
direct\-buffer allocations.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1508
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
  1509
\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
  1510
\f[CB]G\f[R] to indicate gigabytes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1511
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
  1512
for NIO direct\-buffer allocations automatically.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1513
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1514
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1515
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
  1516
different units:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1517
.IP
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  1518
.nf
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1519
\f[CB]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1520
\-XX:MaxDirectMemorySize=1m
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1521
\-XX:MaxDirectMemorySize=1024k
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1522
\-XX:MaxDirectMemorySize=1048576
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1523
\f[R]
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  1524
.fi
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1525
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1526
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1527
.B \f[CB]\-XX:\-MaxFDLimit\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1528
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
  1529
descriptors to the hard limit.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1530
By default, this option is enabled on all platforms, but is ignored on
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1531
Windows.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1532
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
  1533
use imposes a maximum of 10240, which is lower than the actual system
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1534
maximum.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1535
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1536
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1537
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1538
.B \f[CB]\-XX:NativeMemoryTracking=\f[R]\f[I]mode\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1539
Specifies the mode for tracking JVM native memory usage.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1540
Possible \f[I]mode\f[R] arguments for this option include the following:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1541
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1542
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1543
.B \f[CB]off\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1544
Instructs not to track JVM native memory usage.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1545
This is the default behavior if you don\[aq]t specify the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1546
\f[CB]\-XX:NativeMemoryTracking\f[R] option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1547
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1548
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1549
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1550
.B \f[CB]summary\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1551
Tracks memory usage only by JVM subsystems, such as Java heap, class,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1552
code, and thread.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1553
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1554
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1555
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1556
.B \f[CB]detail\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1557
In addition to tracking memory usage by JVM subsystems, track memory
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1558
usage by individual \f[CB]CallSite\f[R], individual virtual memory region
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1559
and its committed regions.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1560
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1561
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1562
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1563
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1564
.B \f[CB]\-XX:ObjectAlignmentInBytes=\f[R]\f[I]alignment\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1565
Sets the memory alignment of Java objects (in bytes).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1566
By default, the value is set to 8 bytes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1567
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
  1568
of 8 and 256 (inclusive).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1569
This option makes it possible to use compressed pointers with large Java
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1570
heap sizes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1571
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1572
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1573
The heap size limit in bytes is calculated as:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1574
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1575
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1576
\f[CB]4GB\ *\ ObjectAlignmentInBytes\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1577
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1578
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1579
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1580
\f[B]Note:\f[R] As the alignment value increases, the unused space
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1581
between objects also increases.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1582
As a result, you may not realize any benefits from using compressed
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1583
pointers with large Java heap sizes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1584
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1585
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1586
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1587
.B \f[CB]\-XX:OnError=\f[R]\f[I]string\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1588
Sets a custom command or a series of semicolon\-separated commands to
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1589
run when an irrecoverable error occurs.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1590
If the string contains spaces, then it must be enclosed in quotation
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1591
marks.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1592
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1593
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1594
\f[B]Oracle Solaris, Linux, and macOS:\f[R] The following example shows
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1595
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
  1596
\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
  1597
\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
  1598
irrecoverable error (the \f[CB]%p\f[R] designates the current process
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1599
identifier):
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1600
.RS 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1601
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1602
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1603
\f[CB]\-XX:OnError="gcore\ %p;gdb\ \-p\ %p"\f[R]
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
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1607
\f[B]Windows:\f[R] The following example shows how the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1608
\f[CB]\-XX:OnError\f[R] option can be used to run the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1609
\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
  1610
irrecoverable error (the \f[CB]%p\f[R] designates the current process
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1611
identifier).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1612
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
  1613
is specified in the \f[CB]PATH\f[R] environment variable:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1614
.RS 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1615
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1616
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1617
\f[CB]\-XX:OnError="userdump.exe\ %p"\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1618
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1619
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1620
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1621
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1622
.B \f[CB]\-XX:OnOutOfMemoryError=\f[R]\f[I]string\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1623
Sets a custom command or a series of semicolon\-separated commands to
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1624
run when an \f[CB]OutOfMemoryError\f[R] exception is first thrown.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1625
If the string contains spaces, then it must be enclosed in quotation
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1626
marks.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1627
For an example of a command string, see the description of the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1628
\f[CB]\-XX:OnError\f[R] option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1629
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1630
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1631
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1632
.B \f[CB]\-XX:+PrintCommandLineFlags\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1633
Enables printing of ergonomically selected JVM flags that appeared on
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1634
the command line.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1635
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
  1636
the heap space size and the selected garbage collector.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1637
By default, this option is disabled and flags aren\[aq]t printed.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1638
.RS
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
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1641
.B \f[CB]\-XX:+PreserveFramePointer\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1642
Selects between using the RBP register as a general purpose register
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1643
(\f[CB]\-XX:\-PreserveFramePointer\f[R]) and using the RBP register to
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1644
hold the frame pointer of the currently executing method
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1645
(\f[CB]\-XX:+PreserveFramePointer\f[R] .
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1646
If the frame pointer is available, then external profiling tools\ (for
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1647
example, Linux perf) can construct more accurate stack traces.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1648
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1649
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1650
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1651
.B \f[CB]\-XX:+PrintNMTStatistics\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1652
Enables printing of collected native memory tracking data at JVM exit
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1653
when native memory tracking is enabled (see
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1654
\f[CB]\-XX:NativeMemoryTracking\f[R]).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1655
By default, this option is disabled and native memory tracking data
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1656
isn\[aq]t printed.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1657
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1658
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1659
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1660
.B \f[CB]\-XX:SharedArchiveFile=\f[R]\f[I]path\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1661
Specifies the path and name of the class data sharing (CDS) archive file
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1662
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1663
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1664
See \f[B]Application Class Data Sharing\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1665
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1666
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1667
.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
  1668
Specifies additional shared data added to the archive file.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1669
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1670
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1671
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1672
.B \f[CB]\-XX:SharedClassListFile=\f[R]\f[I]file_name\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1673
Specifies the text file that contains the names of the classes to store
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1674
in the class data sharing (CDS) archive.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1675
This file contains the full name of one class per line, except slashes
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1676
(\f[CB]/\f[R]) replace dots (\f[CB]\&.\f[R]).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1677
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
  1678
\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
  1679
lines:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1680
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1681
.IP
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  1682
.nf
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1683
\f[CB]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1684
java/lang/Object
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1685
hello/Main
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1686
\f[R]
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  1687
.fi
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1688
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1689
The classes that you specify in this text file should include the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1690
classes that are commonly used by the application.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1691
They may include any classes from the application, extension, or
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1692
bootstrap class paths.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1693
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1694
See \f[B]Application Class Data Sharing\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1695
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1696
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1697
.B \f[CB]\-XX:+ShowMessageBoxOnError\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1698
Enables the display of a dialog box when the JVM experiences an
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1699
irrecoverable error.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1700
This prevents the JVM from exiting and keeps the process active so that
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1701
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
  1702
By default, this option is disabled.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1703
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1704
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1705
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1706
.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
  1707
Starts a JFR recording for the Java application.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1708
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
  1709
that starts a recording during runtime.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1710
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
  1711
entries when starting a JFR recording:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1712
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1713
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1714
.B \f[CB]delay=\f[R]\f[I]time\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1715
Specifies the delay between the Java application launch time and the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1716
start of the recording.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1717
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
  1718
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
  1719
specifying \f[CB]10m\f[R] means 10 minutes).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1720
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
  1721
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1722
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1723
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1724
.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
  1725
Specifies whether to write data to disk while recording.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1726
By default, this parameter is enabled.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1727
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1728
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1729
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1730
.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
  1731
Specifies if the running recording is dumped when the JVM shuts down.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1732
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
  1733
written to a file in the directory where the process was started.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1734
The file name is a system\-generated name that contains the process ID,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1735
recording ID, and current timestamp, similar to
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1736
\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
  1737
By default, this parameter is disabled.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1738
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1739
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1740
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1741
.B \f[CB]duration=\f[R]\f[I]time\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1742
Specifies the duration of the recording.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1743
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
  1744
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
  1745
specifying \f[CB]5h\f[R] means 5 hours).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1746
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
  1747
0.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1748
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1749
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1750
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1751
.B \f[CB]filename=\f[R]\f[I]path\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1752
Specifies the path and name of the file to which the recording is
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1753
written when the recording is stopped, for example:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1754
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1755
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1756
\f[CB]recording.jfr\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1757
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1758
\f[CB]/home/user/recordings/recording.jfr\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1759
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1760
\f[CB]c:\\recordings\\recording.jfr\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1761
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1762
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1763
.B \f[CB]name=\f[R]\f[I]identifier\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1764
Takes both the name and the identifier of a recording.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1765
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1766
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1767
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1768
.B \f[CB]maxage=\f[R]\f[I]time\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1769
Specifies the maximum age of disk data to keep for the recording.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1770
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
  1771
\f[CB]true\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1772
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
  1773
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
  1774
specifying \f[CB]30s\f[R] means 30 seconds).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1775
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
  1776
to \f[CB]0s\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1777
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1778
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1779
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1780
.B \f[CB]maxsize=\f[R]\f[I]size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1781
Specifies the maximum size (in bytes) of disk data to keep for the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1782
recording.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1783
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
  1784
\f[CB]true\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1785
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
  1786
parameter set with \f[CB]\-XX:FlightRecorderOptions\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1787
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
  1788
\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
  1789
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
  1790
parameter is set to \f[CB]0\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1791
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1792
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1793
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1794
.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
  1795
Specifies whether to collect the path to garbage collection (GC) roots
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1796
at the end of a recording.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1797
By default, this parameter is disabled.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1798
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1799
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1800
The path to GC roots is useful for finding memory leaks, but collecting
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1801
it is time\-consuming.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1802
Enable this option only when you start a recording for an application
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1803
that you suspect has a memory leak.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1804
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
  1805
trace from where the potential leaking object was allocated is included
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1806
in the information collected.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1807
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1808
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1809
.B \f[CB]settings=\f[R]\f[I]path\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1810
Specifies the path and name of the event settings file (of type JFC).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1811
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
  1812
\f[CB]JRE_HOME/lib/jfr\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1813
This default settings file collects a predefined set of information with
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1814
low overhead, so it has minimal impact on performance and can be used
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1815
with recordings that run continuously.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1816
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1817
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1818
A second settings file is also provided, profile.jfc, which provides
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1819
more data than the default configuration, but can have more overhead and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1820
impact performance.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1821
Use this configuration for short periods of time when more information
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1822
is needed.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1823
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1824
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1825
You can specify values for multiple parameters by separating them with a
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1826
comma.
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]\-XX:ThreadStackSize=\f[R]\f[I]size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1830
Sets the Java thread stack size (in kilobytes).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1831
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
  1832
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
  1833
Java thread stack size\ to 1024*1024 bytes or 1 megabyte.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1834
The default value depends on the platform:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1835
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1836
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1837
Linux/x64 (64\-bit): 1024 KB
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1838
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1839
macOS (64\-bit): 1024 KB
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1840
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1841
Oracle Solaris (64\-bit): 1024 KB
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1842
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1843
Windows: The default value depends on virtual memory
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
The following examples show how to set the thread stack size to 1
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1846
megabyte in different units:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1847
.IP
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  1848
.nf
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1849
\f[CB]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1850
\-XX:ThreadStackSize=1k
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1851
\-XX:ThreadStackSize=1024
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1852
\f[R]
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  1853
.fi
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1854
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1855
This option is similar to \f[CB]\-Xss\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1856
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1857
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1858
.B \f[CB]\-XX:\-UseBiasedLocking\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1859
Disables the use of biased locking.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1860
Some applications with significant amounts of uncontended
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1861
synchronization may attain significant speedups with this flag enabled,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1862
but applications with certain patterns of locking may see slowdowns.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1863
\&.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1864
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1865
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1866
By default, this option is enabled.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1867
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1868
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1869
.B \f[CB]\-XX:\-UseCompressedOops\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1870
Disables the use of compressed pointers.
57571
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  1871
By default, this option is enabled, and compressed pointers are used.
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  1872
This will automatically limit the maximum ergonomically determined Java
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  1873
heap size to the maximum amount of memory that can be covered by
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  1874
compressed pointers.
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  1875
By default this range is 32 GB.
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  1876
.RS
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  1877
.PP
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  1878
With compressed oops enabled, object references are represented as
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1879
32\-bit offsets instead of 64\-bit pointers, which typically increases
57571
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  1880
performance when running the application with Java heap sizes smaller
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  1881
than the compressed oops pointer range.
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1882
This option works only for 64\-bit JVMs.
57571
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  1883
.PP
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  1884
It\[aq]s possible to use compressed pointers with Java heap sizes
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  1885
greater than 32 GB.
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1886
See the \f[CB]\-XX:ObjectAlignmentInBytes\f[R] option.
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:\-UseContainerSupport\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1890
The VM now provides automatic container detection support, which allows
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1891
the VM to determine the amount of memory and number of processors that
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1892
are available to a Java process running in docker containers.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1893
It uses this information to allocate system resources.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1894
This support is only available on Linux x64 platforms.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1895
\ 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
  1896
container support is enabled by default.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1897
\ It\ can be disabled with\ \f[CB]\-XX:\-UseContainerSupport\f[R].
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
Unified Logging is available to help to diagnose issues related to this
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1901
support.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1902
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1903
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
  1904
information.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1905
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
  1906
description of using Unified Logging.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1907
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1908
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1909
.B \f[CB]\-XX:+UseHugeTLBFS\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1910
\f[B]Linux only:\f[R] This option is the equivalent of specifying
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1911
\f[CB]\-XX:+UseLargePages\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1912
This option is disabled by default.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1913
This option pre\-allocates all large pages up\-front, when memory is
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1914
reserved; consequently the JVM can\[aq]t dynamically grow or shrink
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1915
large pages memory areas; see \f[CB]\-XX:UseTransparentHugePages\f[R] if
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1916
you want this behavior.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1917
.RS
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
See \f[B]Large Pages\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1920
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1921
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1922
.B \f[CB]\-XX:+UseLargePages\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1923
Enables the use of large page memory.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1924
By default, this option is disabled and large page memory isn\[aq]t
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1925
used.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1926
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1927
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1928
See \f[B]Large Pages\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1929
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1930
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1931
.B \f[CB]\-XX:+UseTransparentHugePages\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1932
\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
  1933
grow or shrink.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1934
This option is disabled by default.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1935
You may encounter performance problems with transparent huge pages as
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1936
the OS moves other pages around to create huge pages; this option is
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1937
made available for experimentation.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1938
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1939
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1940
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1941
.B \f[CB]\-XX:+AllowUserSignalHandlers\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1942
Enables installation of signal handlers by the application.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1943
By default, this option is disabled and the application isn\[aq]t
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1944
allowed to install signal handlers.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1945
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1946
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1947
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1948
.B \f[CB]\-XX:VMOptionsFile=\f[R]\f[I]filename\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1949
Allows user to specify VM options in a file, for example,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1950
\f[CB]java\ \-XX:VMOptionsFile=/var/my_vm_options\ HelloWorld\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1951
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1952
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1953
.SH ADVANCED JIT COMPILER OPTIONS FOR JAVA
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1954
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1955
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
  1956
compilation performed by the Java HotSpot VM.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1957
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1958
.B \f[CB]\-XX:AllocateInstancePrefetchLines=\f[R]\f[I]lines\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1959
Sets the number of lines to prefetch ahead of the instance allocation
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1960
pointer.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1961
By default, the number of lines to prefetch is set to 1:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1962
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1963
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1964
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1965
\f[CB]\-XX:AllocateInstancePrefetchLines=1\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1966
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1967
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1968
Only the Java HotSpot Server VM supports this option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1969
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1970
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1971
.B \f[CB]\-XX:AllocatePrefetchDistance=\f[R]\f[I]size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1972
Sets the size (in bytes) of the prefetch distance for object allocation.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1973
Memory about to be written with the value of new objects is prefetched
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1974
up to this distance starting from the address of the last allocated
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1975
object.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1976
Each Java thread has its own allocation point.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1977
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1978
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1979
Negative values denote that prefetch distance is chosen based on the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1980
platform.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1981
Positive values are bytes to prefetch.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1982
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
  1983
\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
  1984
\f[CB]G\f[R] to indicate gigabytes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1985
The default value is set to \-1.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1986
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1987
The following example shows how to set the prefetch distance to 1024
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1988
bytes:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1989
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1990
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1991
\f[CB]\-XX:AllocatePrefetchDistance=1024\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1992
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1993
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1994
Only the Java HotSpot Server VM supports this option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1995
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1996
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1997
.B \f[CB]\-XX:AllocatePrefetchInstr=\f[R]\f[I]instruction\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1998
Sets the prefetch instruction to prefetch ahead of the allocation
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  1999
pointer.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2000
Only the Java HotSpot Server VM supports this option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2001
Possible values are from 0 to 3.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2002
The actual instructions behind the values depend on the platform.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2003
By default, the prefetch instruction is set to 0:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2004
.RS
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:AllocatePrefetchInstr=0\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:AllocatePrefetchLines=\f[R]\f[I]lines\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2014
Sets the number of cache lines to load after the last object allocation
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2015
by using the prefetch instructions generated in compiled code.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2016
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
  2017
3 if it was an array.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2018
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2019
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2020
The following example shows how to set the number of loaded cache lines
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2021
to 5:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2022
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2023
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2024
\f[CB]\-XX:AllocatePrefetchLines=5\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2025
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2026
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2027
Only the Java HotSpot Server VM supports this option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2028
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2029
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2030
.B \f[CB]\-XX:AllocatePrefetchStepSize=\f[R]\f[I]size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2031
Sets the step size (in bytes) for sequential prefetch instructions.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2032
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
  2033
\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
  2034
to indicate gigabytes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2035
By default, the step size is set to 16 bytes:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2036
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2037
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2038
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2039
\f[CB]\-XX:AllocatePrefetchStepSize=16\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2040
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2041
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2042
Only the Java HotSpot Server VM supports this option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2043
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2044
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2045
.B \f[CB]\-XX:AllocatePrefetchStyle=\f[R]\f[I]style\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2046
Sets the generated code style for prefetch instructions.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2047
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
  2048
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2049
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2050
.B \f[CB]0\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2051
Don\[aq]t generate prefetch instructions.
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
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2054
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2055
.B \f[CB]1\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2056
Execute prefetch instructions after each allocation.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2057
This is the default parameter.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2058
.RS
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]2\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2062
Use the thread\-local allocation block (TLAB) watermark pointer to
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2063
determine when prefetch instructions are executed.
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
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2066
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2067
.B \f[CB]3\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2068
Use BIS instruction on SPARC for allocation prefetch.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2069
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2070
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2071
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2072
Only the Java HotSpot Server VM supports this option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2073
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2074
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2075
.B \f[CB]\-XX:+BackgroundCompilation\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2076
Enables background compilation.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2077
This option is enabled by default.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2078
To disable background compilation, specify
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2079
\f[CB]\-XX:\-BackgroundCompilation\f[R] (this is equivalent to specifying
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2080
\f[CB]\-Xbatch\f[R]).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2081
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2082
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2083
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2084
.B \f[CB]\-XX:CICompilerCount=\f[R]\f[I]threads\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2085
Sets the number of compiler threads to use for compilation.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2086
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
  2087
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
  2088
compilation is used.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2089
The following example shows how to set the number of threads to 2:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2090
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2091
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2092
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2093
\f[CB]\-XX:CICompilerCount=2\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2094
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2095
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2096
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2097
.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
  2098
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
  2099
For example, to exclude the \f[CB]indexOf()\f[R] method of the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2100
\f[CB]String\f[R] class from being compiled, use the following:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2101
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2102
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2103
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2104
\f[CB]\-XX:CompileCommand=exclude,java/lang/String.indexOf\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2105
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2106
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2107
Note that the full class name is specified, including all packages and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2108
subpackages separated by a slash (\f[CB]/\f[R]).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2109
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
  2110
method name format produced by the \f[CB]\-XX:+PrintCompilation\f[R] and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2111
\f[CB]\-XX:+LogCompilation\f[R] options:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2112
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2113
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2114
\f[CB]\-XX:CompileCommand=exclude,java.lang.String::indexOf\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2115
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2116
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2117
If the method is specified without the signature, then the command is
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2118
applied to all methods with the specified name.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2119
However, you can also specify the signature of the method in the class
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2120
file format.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2121
In this case, you should enclose the arguments in quotation marks,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2122
because otherwise the shell treats the semicolon as a command end.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2123
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
  2124
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
  2125
following:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2126
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2127
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2128
\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
  2129
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2130
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2131
You can also use the asterisk (*) as a wildcard for class and method
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2132
names.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2133
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
  2134
from being compiled, use the following:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2135
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2136
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2137
\f[CB]\-XX:CompileCommand=exclude,*.indexOf\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2138
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2139
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2140
The commas and periods are aliases for spaces, making it easier to pass
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2141
compiler commands through a shell.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2142
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
  2143
separators by enclosing the argument in quotation marks:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2144
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2145
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2146
\f[CB]\-XX:CompileCommand="exclude\ java/lang/String\ indexOf"\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2147
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2148
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2149
Note that after parsing the commands passed on the command line using
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2150
the \f[CB]\-XX:CompileCommand\f[R] options, the JIT compiler then reads
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2151
commands from the \f[CB]\&.hotspot_compiler\f[R] file.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2152
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
  2153
\f[CB]\-XX:CompileCommandFile\f[R] option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2154
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2155
To add several commands, either specify the \f[CB]\-XX:CompileCommand\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2156
option multiple times, or separate each argument with the new line
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2157
separator (\f[CB]\\n\f[R]).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2158
The following commands are available:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2159
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2160
.B \f[CB]break\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2161
Sets a breakpoint when debugging the JVM to stop at the beginning of
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2162
compilation of the specified method.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2163
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2164
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2165
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2166
.B \f[CB]compileonly\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2167
Excludes all methods from compilation except for the specified method.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2168
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
  2169
which lets you specify several methods.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2170
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2171
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2172
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2173
.B \f[CB]dontinline\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2174
Prevents inlining of the specified method.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2175
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2176
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2177
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2178
.B \f[CB]exclude\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2179
Excludes the specified method from compilation.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2180
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2181
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2182
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2183
.B \f[CB]help\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2184
Prints a help message for the \f[CB]\-XX:CompileCommand\f[R] option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2185
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2186
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2187
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2188
.B \f[CB]inline\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2189
Attempts to inline the specified method.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2190
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2191
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2192
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2193
.B \f[CB]log\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2194
Excludes compilation logging (with the \f[CB]\-XX:+LogCompilation\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2195
option) for all methods except for the specified method.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2196
By default, logging is performed for all compiled methods.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2197
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2198
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2199
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2200
.B \f[CB]option\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2201
Passes a JIT compilation option to the specified method in place of the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2202
last argument (\f[CB]option\f[R]).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2203
The compilation option is set at the end, after the method name.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2204
For example, to enable the \f[CB]BlockLayoutByFrequency\f[R] option for
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2205
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
  2206
following:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2207
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2208
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2209
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2210
\f[CB]\-XX:CompileCommand=option,java/lang/StringBuffer.append,BlockLayoutByFrequency\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2211
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2212
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2213
You can specify multiple compilation options, separated by commas or
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2214
spaces.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2215
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2216
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2217
.B \f[CB]print\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2218
Prints generated assembler code after compilation of the specified
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2219
method.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2220
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2221
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2222
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2223
.B \f[CB]quiet\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2224
Instructs not to print the compile commands.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2225
By default, the commands that you specify with the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2226
\f[CB]\-XX:CompileCommand\f[R] option are printed; for example, if you
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2227
exclude from compilation the \f[CB]indexOf()\f[R] method of the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2228
\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
  2229
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2230
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2231
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2232
\f[CB]CompilerOracle:\ exclude\ java/lang/String.indexOf\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2233
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2234
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2235
You can suppress this by specifying the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2236
\f[CB]\-XX:CompileCommand=quiet\f[R] option before other
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2237
\f[CB]\-XX:CompileCommand\f[R] options.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2238
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2239
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2240
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2241
.B \f[CB]\-XX:CompileCommandFile=\f[R]\f[I]filename\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2242
Sets the file from which JIT compiler commands are read.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2243
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
  2244
commands performed by the JIT compiler.
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
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2247
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
  2248
method name for which the command is used.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2249
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
  2250
method of the \f[CB]String\f[R] class:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2251
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2252
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2253
\f[CB]print\ java/lang/String\ toString\f[R]
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
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2256
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
  2257
then see the \f[CB]\-XX:CompileCommand\f[R] option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2258
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2259
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2260
.B \f[CB]\-XX:CompilerDirectivesFile=\f[R]\f[I]file\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2261
Adds directives from a file to the directives stack when a program
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2262
starts.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2263
See \f[B]Compiler Control\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2264
[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
  2265
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2266
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2267
The \f[CB]\-XX:CompilerDirectivesFile\f[R] option has to be used together
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2268
with the \f[CB]\-XX:UnlockDiagnosticVMOptions\f[R] option that unlocks
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2269
diagnostic JVM options.
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
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2272
.B \f[CB]\-XX:+CompilerDirectivesPrint\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2273
Prints the directives stack when the program starts or when a new
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2274
directive is added.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2275
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2276
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2277
The \f[CB]\-XX:+CompilerDirectivesPrint\f[R] option has to be used
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2278
together with the \f[CB]\-XX:UnlockDiagnosticVMOptions\f[R] option that
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2279
unlocks diagnostic JVM options.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2280
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2281
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2282
.B \f[CB]\-XX:CompileOnly=\f[R]\f[I]methods\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2283
Sets the list of methods (separated by commas) to which compilation
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2284
should be restricted.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2285
Only the specified methods are compiled.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2286
Specify each method with the full class name (including the packages and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2287
subpackages).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2288
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
  2289
\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
  2290
\f[CB]List\f[R] class, use the following:
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
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2293
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2294
\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
  2295
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2296
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2297
Note that the full class name is specified, including all packages and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2298
subpackages separated by a slash (\f[CB]/\f[R]).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2299
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
  2300
method name format produced by the \f[CB]\-XX:+PrintCompilation\f[R] and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2301
\f[CB]\-XX:+LogCompilation\f[R] options:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2302
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2303
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2304
\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
  2305
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2306
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2307
Although wildcards aren\[aq]t supported, you can specify only the class
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2308
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
  2309
as specify just the method to compile methods with this name in any
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2310
class:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2311
.IP
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  2312
.nf
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2313
\f[CB]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2314
\-XX:CompileOnly=java/lang/String
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2315
\-XX:CompileOnly=java/lang
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2316
\-XX:CompileOnly=.length
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2317
\f[R]
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  2318
.fi
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2319
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2320
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2321
.B \f[CB]\-XX:CompileThreshold=\f[R]\f[I]invocations\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2322
Sets the number of interpreted method invocations before compilation.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2323
By default, in the server JVM, the JIT compiler performs 10,000
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2324
interpreted method invocations to gather information for efficient
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2325
compilation.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2326
For the client JVM, the default setting is 1,500 invocations.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2327
This option is ignored when tiered compilation is enabled; see the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2328
option \f[CB]\-XX:\-TieredCompilation\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2329
The following example shows how to set the number of interpreted method
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2330
invocations to 5,000:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2331
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2332
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2333
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2334
\f[CB]\-XX:CompileThreshold=5000\f[R]
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
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2337
You can completely disable interpretation of Java methods before
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2338
compilation by specifying the \f[CB]\-Xcomp\f[R] option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2339
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2340
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2341
.B \f[CB]\-XX:CompileThresholdScaling=\f[R]\f[I]scale\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2342
Provides unified control of first compilation.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2343
This option controls when methods are first compiled for both the tiered
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2344
and the nontiered modes of operation.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2345
The \f[CB]CompileThresholdScaling\f[R] option has an integer value between
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2346
0 and +Inf and scales the thresholds corresponding to the current mode
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2347
of operation (both tiered and nontiered).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2348
Setting \f[CB]CompileThresholdScaling\f[R] to a value less than 1.0
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2349
results in earlier compilation while values greater than 1.0 delay
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2350
compilation.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2351
Setting \f[CB]CompileThresholdScaling\f[R] to 0 is equivalent to disabling
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2352
compilation.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2353
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2354
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2355
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2356
.B \f[CB]\-XX:+DoEscapeAnalysis\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2357
Enables the use of escape analysis.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2358
This option is enabled by default.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2359
To disable the use of escape analysis, specify
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2360
\f[CB]\-XX:\-DoEscapeAnalysis\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2361
Only the Java HotSpot Server VM supports this option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2362
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2363
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2364
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2365
.B \f[CB]\-XX:InitialCodeCacheSize=\f[R]\f[I]size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2366
Sets the initial code cache size (in bytes).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2367
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
  2368
\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
  2369
\f[CB]G\f[R] to indicate gigabytes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2370
The default value is set to 500 KB.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2371
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
  2372
minimal memory page size.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2373
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
  2374
KB:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2375
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2376
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2377
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2378
\f[CB]\-XX:InitialCodeCacheSize=32k\f[R]
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
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2381
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2382
.B \f[CB]\-XX:+Inline\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2383
Enables method inlining.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2384
This option is enabled by default to increase performance.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2385
To disable method inlining, specify \f[CB]\-XX:\-Inline\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2386
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2387
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2388
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2389
.B \f[CB]\-XX:InlineSmallCode=\f[R]\f[I]size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2390
Sets the maximum code size (in bytes) for compiled methods that should
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2391
be inlined.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2392
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
  2393
\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
  2394
\f[CB]G\f[R] to indicate gigabytes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2395
Only compiled methods with the size smaller than the specified size is
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2396
inlined.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2397
By default, the maximum code size is set to 1000 bytes:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2398
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2399
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2400
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2401
\f[CB]\-XX:InlineSmallCode=1000\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2402
.RE
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:+LogCompilation\f[R]
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  2406
Enables logging of compilation activity to a file named
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2407
\f[CB]hotspot.log\f[R] in the current working directory.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2408
You can specify a different log file path and name using the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2409
\f[CB]\-XX:LogFile\f[R] option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2410
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2411
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2412
By default, this option is disabled and compilation activity isn\[aq]t
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2413
logged.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2414
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
  2415
the \f[CB]\-XX:UnlockDiagnosticVMOptions\f[R] option that unlocks
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2416
diagnostic JVM options.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2417
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2418
You can enable verbose diagnostic output with a message printed to the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2419
console every time a method is compiled by using the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2420
\f[CB]\-XX:+PrintCompilation\f[R] option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2421
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2422
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2423
.B \f[CB]\-XX:MaxInlineSize=\f[R]\f[I]size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2424
Sets the maximum bytecode size (in bytes) of a method to be inlined.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2425
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
  2426
\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
  2427
\f[CB]G\f[R] to indicate gigabytes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2428
By default, the maximum bytecode size is set to 35 bytes:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2429
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2430
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2431
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2432
\f[CB]\-XX:MaxInlineSize=35\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2433
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2434
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2435
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2436
.B \f[CB]\-XX:MaxNodeLimit=\f[R]\f[I]nodes\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2437
Sets the maximum number of nodes to be used during single method
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2438
compilation.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2439
By default, the maximum number of nodes is set to 65,000:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2440
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2441
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2442
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2443
\f[CB]\-XX:MaxNodeLimit=65000\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2444
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2445
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2446
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2447
.B \f[CB]\-XX:NonNMethodCodeHeapSize=\f[R]\f[I]size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2448
Sets the size in bytes of the code segment containing nonmethod code.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2449
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2450
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2451
A nonmethod code segment containing nonmethod code, such as compiler
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2452
buffers and the bytecode interpreter.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2453
This code type stays in the code cache forever.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2454
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
  2455
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2456
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2457
.B \f[CB]\-XX:NonProfiledCodeHeapSize=\f[R]\f[I]size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2458
Sets the size in bytes of the code segment containing nonprofiled
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2459
methods.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2460
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
  2461
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2462
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2463
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2464
.B \f[CB]\-XX:MaxTrivialSize=\f[R]\f[I]size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2465
Sets the maximum bytecode size (in bytes) of a trivial method to be
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2466
inlined.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2467
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
  2468
\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
  2469
\f[CB]G\f[R] to indicate gigabytes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2470
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
  2471
bytes:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2472
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2473
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2474
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2475
\f[CB]\-XX:MaxTrivialSize=6\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2476
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2477
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2478
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2479
.B \f[CB]\-XX:+OptimizeStringConcat\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2480
Enables the optimization of \f[CB]String\f[R] concatenation operations.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2481
This option is enabled by default.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2482
To disable the optimization of \f[CB]String\f[R] concatenation operations,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2483
specify \f[CB]\-XX:\-OptimizeStringConcat\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2484
Only the Java HotSpot Server VM supports this option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2485
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2486
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2487
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2488
.B \f[CB]\-XX:+PrintAssembly\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2489
Enables printing of assembly code for bytecoded and native methods by
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2490
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
  2491
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
  2492
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
  2493
performance issues.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2494
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2495
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2496
By default, this option is disabled and assembly code isn\[aq]t printed.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2497
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
  2498
\f[CB]\-XX:UnlockDiagnosticVMOptions\f[R] option that unlocks diagnostic
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2499
JVM options.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2500
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2501
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2502
.B \f[CB]\-XX:ProfiledCodeHeapSize=\f[R]\f[I]size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2503
Sets the size in bytes of the code segment containing profiled methods.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2504
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
  2505
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2506
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2507
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2508
.B \f[CB]\-XX:+PrintCompilation\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2509
Enables verbose diagnostic output from the JVM by printing a message to
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2510
the console every time a method is compiled.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2511
This lets you to see which methods actually get compiled.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2512
By default, this option is disabled and diagnostic output isn\[aq]t
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2513
printed.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2514
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2515
.PP
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  2516
You can also log compilation activity to a file by using the
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2517
\f[CB]\-XX:+LogCompilation\f[R] option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2518
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2519
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2520
.B \f[CB]\-XX:+PrintInlining\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2521
Enables printing of inlining decisions.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2522
This let\[aq]s you see which methods are getting inlined.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2523
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2524
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2525
By default, this option is disabled and inlining information isn\[aq]t
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2526
printed.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2527
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
  2528
\f[CB]\-XX:+UnlockDiagnosticVMOptions\f[R] option that unlocks diagnostic
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2529
JVM options.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2530
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2531
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2532
.B \f[CB]\-XX:ReservedCodeCacheSize=\f[R]\f[I]size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2533
Sets the maximum code cache size (in bytes) for JIT\-compiled code.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2534
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
  2535
\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
  2536
\f[CB]G\f[R] to indicate gigabytes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2537
The default maximum code cache size is 240 MB; if you disable tiered
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2538
compilation with the option \f[CB]\-XX:\-TieredCompilation\f[R], then the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2539
default size is 48 MB.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2540
This option has a limit of 2 GB; otherwise, an error is generated.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2541
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
  2542
cache size; see the option \f[CB]\-XX:InitialCodeCacheSize\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2543
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2544
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2545
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2546
.B \f[CB]\-XX:RTMAbortRatio=\f[R]\f[I]abort_ratio\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2547
Specifies the RTM abort ratio is specified as a percentage (%) of all
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2548
executed RTM transactions.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2549
If a number of aborted transactions becomes greater than this ratio,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2550
then the compiled code is deoptimized.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2551
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
  2552
enabled.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2553
The default value of this option is 50.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2554
This means that the compiled code is deoptimized if 50% of all
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2555
transactions are aborted.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2556
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2557
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2558
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2559
.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
  2560
Specifies the number of times that the RTM locking code is retried, when
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2561
it is aborted or busy, before falling back to the normal locking
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2562
mechanism.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2563
The default value for this option is 5.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2564
The \f[CB]\-XX:UseRTMLocking\f[R] option must be enabled.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2565
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2566
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2567
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2568
.B \f[CB]\-XX:+SegmentedCodeCache\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2569
Enables segmentation of the code cache.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2570
Without the \f[CB]\-XX:+SegmentedCodeCache\f[R], the code cache consists
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2571
of one large segment.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2572
With \f[CB]\-XX:+SegmentedCodeCache\f[R], we have separate segments for
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2573
nonmethod, profiled method, and nonprofiled method code.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2574
These segments aren\[aq]t resized at runtime.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2575
The feature is enabled by default if tiered compilation is enabled
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2576
(\f[CB]\-XX:+TieredCompilation\f[R] ) and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2577
\f[CB]\-XX:ReservedCodeCacheSize\f[R] >= 240 MB.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2578
The advantages are better control of the memory footprint, reduced code
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2579
fragmentation, and better iTLB/iCache behavior due to improved locality.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2580
iTLB/iCache is a CPU\-specific term meaning Instruction Translation
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2581
Lookaside Buffer (ITLB).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2582
ICache is an instruction cache in theCPU.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2583
The implementation of the code cache can be found in the file:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2584
\f[CB]/share/vm/code/codeCache.cpp\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2585
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2586
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2587
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2588
.B \f[CB]\-XX:StartAggressiveSweepingAt=\f[R]\f[I]percent\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2589
Forces stack scanning of active methods to aggressively remove unused
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2590
code when only the given percentage of the code cache is free.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2591
The default value is 10%.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2592
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2593
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2594
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2595
.B \f[CB]\-XX:\-TieredCompilation\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2596
Disables the use of tiered compilation.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2597
By default, this option is enabled.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2598
Only the Java HotSpot Server VM supports this option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2599
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2600
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2601
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2602
.B \f[CB]\-XX:+UseAES\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2603
Enables hardware\-based AES intrinsics for Intel, AMD, and SPARC
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2604
hardware.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2605
Intel Westmere (2010 and newer), AMD Bulldozer (2011 and newer), and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2606
SPARC (T4 and newer) are the supported hardware.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2607
The \f[CB]\-XX:+UseAES\f[R] is used in conjunction with UseAESIntrinsics.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2608
Flags that control intrinsics now require the option
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2609
\f[CB]\-XX:+UnlockDiagnosticVMOptions\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2610
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2611
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2612
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2613
.B \f[CB]\-XX:+UseAESIntrinsics\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2614
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
  2615
by default and are supported only for the Java HotSpot Server VM.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2616
To disable hardware\-based AES intrinsics, specify
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2617
\f[CB]\-XX:\-UseAES\ \-XX:\-UseAESIntrinsics\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2618
For example, to enable hardware AES, use the following flags:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2619
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2620
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2621
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2622
\f[CB]\-XX:+UseAES\ \-XX:+UseAESIntrinsics\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2623
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2624
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2625
Flags that control intrinsics now require the option
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2626
\f[CB]\-XX:+UnlockDiagnosticVMOptions\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2627
To support UseAES and UseAESIntrinsics flags, use the \f[CB]\-server\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2628
option to select the Java HotSpot Server VM.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2629
These flags aren\[aq]t supported on Client VM.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2630
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2631
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2632
.B \f[CB]\-XX:+UseCMoveUnconditionally\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2633
Generates CMove (scalar and vector) instructions regardless of
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2634
profitability analysis.
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
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2637
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2638
.B \f[CB]\-XX:+UseCodeCacheFlushing\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2639
Enables flushing of the code cache before shutting down the compiler.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2640
This option is enabled by default.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2641
To disable flushing of the code cache before shutting down the compiler,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2642
specify \f[CB]\-XX:\-UseCodeCacheFlushing\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2643
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2644
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2645
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2646
.B \f[CB]\-XX:+UseCondCardMark\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2647
Enables checking if the card is already marked before updating the card
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2648
table.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2649
This option is disabled by default.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2650
It should be used only on machines with multiple sockets, where it
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2651
increases the performance of Java applications that rely on concurrent
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2652
operations.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2653
Only the Java HotSpot Server VM supports this option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2654
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2655
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2656
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2657
.B \f[CB]\-XX:+UseCountedLoopSafepoints\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2658
Keeps safepoints in counted loops.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2659
Its default value is false.\ 
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2660
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2661
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2662
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2663
.B \f[CB]\-XX:+UseFMA\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2664
Enables hardware\-based FMA intrinsics for hardware where FMA
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2665
instructions are available (such as, Intel, SPARC, and ARM64).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2666
FMA intrinsics are generated for the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2667
\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
  2668
\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
  2669
\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
  2670
expressions.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2671
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2672
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2673
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2674
.B \f[CB]\-XX:+UseRTMDeopt\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2675
Autotunes RTM locking depending on the abort ratio.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2676
This ratio is specified by the \f[CB]\-XX:RTMAbortRatio\f[R] option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2677
If the number of aborted transactions exceeds the abort ratio, then the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2678
method containing the lock is deoptimized and recompiled with all locks
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2679
as normal locks.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2680
This option is disabled by default.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2681
The \f[CB]\-XX:+UseRTMLocking\f[R] option must be enabled.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2682
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2683
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2684
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2685
.B \f[CB]\-XX:+UseRTMLocking\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2686
Generates Restricted Transactional Memory (RTM) locking code for all
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2687
inflated locks, with the normal locking mechanism as the fallback
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2688
handler.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2689
This option is disabled by default.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2690
Options related to RTM are available only for the Java HotSpot Server VM
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2691
on x86 CPUs that support Transactional Synchronization Extensions (TSX).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2692
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2693
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2694
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
  2695
extension and facilitates the creation of multithreaded applications.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2696
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
  2697
\f[CB]XEND\f[R], and \f[CB]XTEST\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2698
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
  2699
instructions to run as a transaction.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2700
If no conflict is found when running the transaction, then the memory
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2701
and register modifications are committed together at the \f[CB]XEND\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2702
instruction.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2703
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
  2704
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
  2705
instructions is being run in a transaction.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2706
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2707
A lock on a transaction is inflated when another thread tries to access
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2708
the same transaction, thereby blocking the thread that didn\[aq]t
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2709
originally request access to the transaction.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2710
RTM requires that a fallback set of operations be specified in case a
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2711
transaction aborts or fails.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2712
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
  2713
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2714
RTM improves performance for highly contended locks with low conflict in
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2715
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
  2716
one thread concurrently).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2717
RTM also improves the performance of coarse\-grain locking, which
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2718
typically doesn\[aq]t perform well in multithreaded applications.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2719
(Coarse\-grain locking is the strategy of holding locks for long periods
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2720
to minimize the overhead of taking and releasing locks, while
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2721
fine\-grained locking is the strategy of trying to achieve maximum
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2722
parallelism by locking only when necessary and unlocking as soon as
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2723
possible.) Also, for lightly contended locks that are used by different
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2724
threads, RTM can reduce false cache line sharing, also known as cache
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2725
line ping\-pong.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2726
This occurs when multiple threads from different processors are
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2727
accessing different resources, but the resources share the same cache
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2728
line.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2729
As a result, the processors repeatedly invalidate the cache lines of
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2730
other processors, which forces them to read from main memory instead of
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2731
their cache.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2732
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2733
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2734
.B \f[CB]\-XX:+UseSHA\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2735
Enables hardware\-based intrinsics for SHA crypto hash functions for
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2736
SPARC hardware.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2737
The \f[CB]UseSHA\f[R] option is used in conjunction with the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2738
\f[CB]UseSHA1Intrinsics\f[R], \f[CB]UseSHA256Intrinsics\f[R], and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2739
\f[CB]UseSHA512Intrinsics\f[R] options.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2740
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2741
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2742
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
  2743
default, and are supported only for Java HotSpot Server VM 64\-bit on
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2744
SPARC T4 and newer.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2745
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2746
This feature is applicable only when using the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2747
\f[CB]sun.security.provider.Sun\f[R] provider for SHA operations.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2748
Flags that control intrinsics now require the option
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2749
\f[CB]\-XX:+UnlockDiagnosticVMOptions\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2750
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2751
To disable all hardware\-based SHA intrinsics, specify the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2752
\f[CB]\-XX:\-UseSHA\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2753
To disable only a particular SHA intrinsic, use the appropriate
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2754
corresponding option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2755
For example: \f[CB]\-XX:\-UseSHA256Intrinsics\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2756
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2757
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2758
.B \f[CB]\-XX:+UseSHA1Intrinsics\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2759
Enables intrinsics for SHA\-1 crypto hash function.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2760
Flags that control intrinsics now require the option
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2761
\f[CB]\-XX:+UnlockDiagnosticVMOptions\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2762
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2763
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2764
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2765
.B \f[CB]\-XX:+UseSHA256Intrinsics\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2766
Enables intrinsics for SHA\-224 and SHA\-256 crypto hash functions.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2767
Flags that control intrinsics now require the option
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2768
\f[CB]\-XX:+UnlockDiagnosticVMOptions\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2769
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2770
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2771
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2772
.B \f[CB]\-XX:+UseSHA512Intrinsics\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2773
Enables intrinsics for SHA\-384 and SHA\-512 crypto hash functions.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2774
Flags that control intrinsics now require the option
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2775
\f[CB]\-XX:+UnlockDiagnosticVMOptions\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2776
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2777
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2778
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2779
.B \f[CB]\-XX:+UseSuperWord\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2780
Enables the transformation of scalar operations into superword
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2781
operations.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2782
Superword is a vectorization optimization.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2783
This option is enabled by default.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2784
To disable the transformation of scalar operations into superword
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2785
operations, specify \f[CB]\-XX:\-UseSuperWord\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2786
Only the Java HotSpot Server VM supports this option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2787
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2788
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2789
.SH ADVANCED SERVICEABILITY OPTIONS FOR JAVA
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2790
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2791
These \f[CB]java\f[R] options provide the ability to gather system
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2792
information and perform extensive debugging.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2793
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2794
.B \f[CB]\-XX:+DisableAttachMechanism\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2795
Disables the mechanism that lets tools attach to the JVM.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2796
By default, this option is disabled, meaning that the attach mechanism
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2797
is enabled and you can use diagnostics and troubleshooting tools such as
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2798
\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
  2799
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2800
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2801
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2802
\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
  2803
\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
  2804
supported when using the tools from one JDK version to troubleshoot a
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2805
different JDK version.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2806
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2807
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2808
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2809
.B \f[CB]\-XX:+ExtendedDTraceProbes\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2810
\f[B]Oracle Solaris, Linux, and macOS:\f[R] Enables additional
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2811
\f[CB]dtrace\f[R] tool probes that affect the performance.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2812
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
  2813
standard probes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2814
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2815
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2816
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2817
.B \f[CB]\-XX:+HeapDumpOnOutOfMemoryError\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2818
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
  2819
by using the heap profiler (HPROF) when a
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2820
\f[CB]java.lang.OutOfMemoryError\f[R] exception is thrown.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2821
You can explicitly set the heap dump file path and name using the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2822
\f[CB]\-XX:HeapDumpPath\f[R] option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2823
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
  2824
an \f[CB]OutOfMemoryError\f[R] exception is thrown.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2825
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2826
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2827
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2828
.B \f[CB]\-XX:HeapDumpPath=path\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2829
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
  2830
heap profiler (HPROF) when the \f[CB]\-XX:+HeapDumpOnOutOfMemoryError\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2831
option is set.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2832
By default, the file is created in the current working directory, and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2833
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
  2834
identifier of the process that caused the error.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2835
The following example shows how to set the default file explicitly
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2836
(\f[CB]%p\f[R] represents the current process identifier):
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2837
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2838
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2839
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2840
\f[CB]\-XX:HeapDumpPath=./java_pid%p.hprof\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2841
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2842
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2843
\f[B]Oracle Solaris, Linux, and macOS:\f[R] The following example shows
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2844
how to set the heap dump file to
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2845
\f[CB]/var/log/java/java_heapdump.hprof\f[R]:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2846
.RS 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2847
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2848
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2849
\f[CB]\-XX:HeapDumpPath=/var/log/java/java_heapdump.hprof\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2850
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2851
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2852
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2853
\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
  2854
file to \f[CB]C:/log/java/java_heapdump.log\f[R]:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2855
.RS 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2856
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2857
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2858
\f[CB]\-XX:HeapDumpPath=C:/log/java/java_heapdump.log\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2859
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2860
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2861
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2862
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2863
.B \f[CB]\-XX:LogFile=\f[R]\f[I]path\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2864
Sets the path and file name to where log data is written.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2865
By default, the file is created in the current working directory, and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2866
it\[aq]s named \f[CB]hotspot.log\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2867
.RS
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]Oracle Solaris, Linux, and macOS:\f[R] The following example shows
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2870
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
  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:LogFile=/var/log/java/hotspot.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
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2878
\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
  2879
\f[CB]C:/log/java/hotspot.log\f[R]:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2880
.RS 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2881
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2882
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2883
\f[CB]\-XX:LogFile=C:/log/java/hotspot.log\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2884
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2885
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2886
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2887
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2888
.B \f[CB]\-XX:+PrintClassHistogram\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2889
Enables printing of a class instance histogram after one of the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2890
following events:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2891
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2892
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2893
\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
  2894
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2895
\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
  2896
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2897
By default, this option is disabled.
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
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
  2900
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
  2901
command, where \f[I]pid\f[R] is the current Java process identifier.
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:+PrintConcurrentLocks\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2905
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
  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]jstack\ \-l\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]Thread.print\ \-l\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:+PrintFlagsRanges\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2921
Prints the range specified and allows automatic testing of the values.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2922
See \f[B]Validate Java Virtual Machine Flag Arguments\f[R].
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
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2925
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2926
.B \f[CB]\-XX:+PerfDataSaveToFile\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2927
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
  2928
exits.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2929
This binary data is saved in a file named
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2930
\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
  2931
identifier of the Java application that you ran.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2932
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
  2933
in this file as follows:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2934
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2935
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2936
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2937
\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
  2938
.RE
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
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2941
\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
  2942
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2943
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2944
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2945
.B \f[CB]\-XX:+UsePerfData\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2946
Enables the \f[CB]perfdata\f[R] feature.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2947
This option is enabled by default to allow JVM monitoring and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2948
performance testing.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2949
Disabling it suppresses the creation of the \f[CB]hsperfdata_userid\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2950
directories.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2951
To disable the \f[CB]perfdata\f[R] feature, specify
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2952
\f[CB]\-XX:\-UsePerfData\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2953
.RS
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
.SH ADVANCED GARBAGE COLLECTION OPTIONS FOR JAVA
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
These \f[CB]java\f[R] options control how garbage collection (GC) is
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2958
performed by the Java HotSpot VM.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2959
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2960
.B \f[CB]\-XX:+AggressiveHeap\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2961
Enables Java heap optimization.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2962
This sets various parameters to be optimal for long\-running jobs with
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2963
intensive memory allocation, based on the configuration of the computer
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2964
(RAM and CPU).
55666
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  2965
By default, the option is disabled and the heap sizes are configured
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  2966
less aggressively.
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2967
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2968
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2969
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2970
.B \f[CB]\-XX:+AlwaysPreTouch\f[R]
55666
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  2971
Requests the VM to touch every page on the Java heap after requesting it
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  2972
from the operating system and before handing memory out to the
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  2973
application.
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  2974
By default, this option is disabled and all pages are committed as the
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  2975
application uses the heap space.
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2976
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2977
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2978
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2979
.B \f[CB]\-XX:+CMSClassUnloadingEnabled\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2980
Enables class unloading when using the concurrent mark\-sweep (CMS)
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2981
garbage collector.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2982
This option is enabled by default.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2983
To disable class unloading for the CMS garbage collector, specify
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2984
\f[CB]\-XX:\-CMSClassUnloadingEnabled\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2985
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2986
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2987
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2988
.B \f[CB]\-XX:CMSExpAvgFactor=\f[R]\f[I]percent\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2989
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
  2990
when computing exponential averages for the concurrent collection
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2991
statistics.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2992
By default, the exponential averages factor is set to 25%.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2993
The following example shows how to set the factor to 15%:
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
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2996
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2997
\f[CB]\-XX:CMSExpAvgFactor=15\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2998
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  2999
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3000
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3001
.B \f[CB]\-XX:CMSInitiatingOccupancyFraction=\f[R]\f[I]percent\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3002
Sets the percentage of the old generation occupancy (0 to 100) at which
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3003
to start a CMS collection cycle.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3004
The default value is set to \-1.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3005
Any negative value (including the default) implies that the option
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3006
\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
  3007
initiating occupancy fraction.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3008
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3009
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3010
The following example shows how to set the factor to 20%:
55666
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3011
.RS
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3012
.PP
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3013
\f[CB]\-XX:CMSInitiatingOccupancyFraction=20\f[R]
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3014
.RE
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3015
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3016
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3017
.B \f[CB]\-XX:CMSIncrementalDutySafetyFactor=\f[R]\f[I]percent\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3018
Sets the percentage (0 to 100) used to add conservatism when computing
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3019
the duty cycle.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3020
The default value is 10.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3021
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3022
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3023
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3024
.B \f[CB]\-XX:+CMSScavengeBeforeRemark\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3025
Enables scavenging attempts before the CMS remark step.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3026
By default, this option is disabled.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3027
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3028
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3029
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3030
.B \f[CB]\-XX:CMSTriggerRatio=percent\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3031
Sets the percentage (0 to 100) of the value specified by the option
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3032
\f[CB]\-XX:MinHeapFreeRatio\f[R] that\[aq]s allocated before a CMS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3033
collection cycle commences.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3034
The default value is set to 80%.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3035
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3036
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3037
The following example shows how to set the occupancy fraction to 75%:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3038
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3039
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3040
\f[CB]\-XX:CMSTriggerRatio=75\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3041
.RE
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:ConcGCThreads=\f[R]\f[I]threads\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3045
Sets the number of threads used for concurrent GC.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3046
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
  3047
parallel garbage collection threads.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3048
The default value depends on the number of CPUs available to the JVM.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3049
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3050
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3051
For example, to set the number of threads for concurrent GC to 2,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3052
specify the following option:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3053
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3054
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3055
\f[CB]\-XX:ConcGCThreads=2\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3056
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3057
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3058
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3059
.B \f[CB]\-XX:+DisableExplicitGC\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3060
Enables the option that disables processing of calls to the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3061
\f[CB]System.gc()\f[R] method.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3062
This option is disabled by default, meaning that calls to
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3063
\f[CB]System.gc()\f[R] are processed.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3064
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
  3065
still performs GC when necessary.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3066
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3067
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3068
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3069
.B \f[CB]\-XX:+ExplicitGCInvokesConcurrent\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3070
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
  3071
request.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3072
This option is disabled by default and can be enabled only with the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3073
deprecated \f[CB]\-XX:+UseConcMarkSweepGC\f[R] option and the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3074
\f[CB]\-XX:+UseG1GC\f[R] option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3075
.RS
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
.TP
55666
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3078
.B \f[CB]\-XX:G1AdaptiveIHOPNumInitialSamples=\f[R]\f[I]number\f[R]
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3079
When \f[CB]\-XX:UseAdaptiveIHOP\f[R] is enabled, this option sets the
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3080
number of completed marking cycles used to gather samples until G1
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3081
adaptively determines the optimum value of
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3082
\f[CB]\-XX:InitiatingHeapOccupancyPercent\f[R].
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3083
Before, G1 uses the value of
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3084
\f[CB]\-XX:InitiatingHeapOccupancyPercent\f[R] directly for this purpose.
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3085
The default value is 3.
55140
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:G1HeapRegionSize=size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3090
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
  3091
using the garbage\-first (G1) collector.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3092
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
  3093
The default region size is determined ergonomically based on the heap
55666
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3094
size with a goal of approximately 2048 regions.
55140
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
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3097
The following example sets the size of the subdivisions to 16 MB:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3098
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3099
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3100
\f[CB]\-XX:G1HeapRegionSize=16m\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3101
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3102
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3103
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3104
.B \f[CB]\-XX:G1HeapWastePercent=\f[R]\f[I]percent\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3105
Sets the percentage of heap that you\[aq]re willing to waste.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3106
The Java HotSpot VM doesn\[aq]t initiate the mixed garbage collection
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3107
cycle when the reclaimable percentage is less than the heap waste
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3108
percentage.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3109
The default is 5 percent.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3110
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3111
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3112
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3113
.B \f[CB]\-XX:G1MaxNewSizePercent=\f[R]\f[I]percent\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3114
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
  3115
generation size.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3116
The default value is 60 percent of your Java heap.
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
This is an experimental flag.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3120
This setting replaces the \f[CB]\-XX:DefaultMaxNewGenPercent\f[R] setting.
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:G1MixedGCCountTarget=\f[R]\f[I]number\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3124
Sets the target number of mixed garbage collections after a marking
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3125
cycle to collect old regions with at most
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3126
\f[CB]G1MixedGCLIveThresholdPercent\f[R] live data.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3127
The default is 8 mixed garbage collections.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3128
The goal for mixed collections is to be within this target number.
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:G1MixedGCLiveThresholdPercent=\f[R]\f[I]percent\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3133
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
  3134
garbage collection cycle.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3135
The default occupancy is 85 percent.
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
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3140
\f[CB]\-XX:G1OldCSetRegionLiveThresholdPercent\f[R] setting.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3141
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3142
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3143
.B \f[CB]\-XX:G1NewSizePercent=\f[R]\f[I]percent\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3144
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
  3145
generation size.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3146
The default value is 5 percent of your Java heap.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3147
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3148
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3149
This is an experimental flag.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3150
This setting replaces the \f[CB]\-XX:DefaultMinNewGenPercent\f[R] setting.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3151
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3152
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3153
.B \f[CB]\-XX:G1OldCSetRegionThresholdPercent=\f[R]\f[I]percent\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3154
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
  3155
a mixed garbage collection cycle.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3156
The default is 10 percent of the Java heap.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3157
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3158
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3159
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3160
.B \f[CB]\-XX:G1ReservePercent=\f[R]\f[I]percent\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3161
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
  3162
ceiling to reduce the possibility of promotion failure for the G1
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3163
collector.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3164
When you increase or decrease the percentage, ensure that you adjust the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3165
total Java heap by the same amount.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3166
By default, this option is set to 10%.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3167
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3168
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3169
The following example sets the reserved heap to 20%:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3170
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3171
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3172
\f[CB]\-XX:G1ReservePercent=20\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3173
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3174
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3175
.TP
55666
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3176
.B \f[CB]\-XX:+G1UseAdaptiveIHOP\f[R]
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3177
Controls adaptive calculation of the old generation occupancy to start
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3178
background work preparing for an old generation collection.
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3179
If enabled, G1 uses \f[CB]\-XX:InitiatingHeapOccupancyPercent\f[R] for the
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3180
first few times as specified by the value of
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3181
\f[CB]\-XX:G1AdaptiveIHOPNumInitialSamples\f[R], and after that adaptively
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3182
calculates a new optimum value for the initiating occupancy
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3183
automatically.
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3184
Otherwise, the old generation collection process always starts at the
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3185
old generation occupancy determined by
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3186
\f[CB]\-XX:InitiatingHeapOccupancyPercent\f[R].
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3187
.RS
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3188
.PP
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3189
The default is enabled.
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3190
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3191
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3192
.B \f[CB]\-XX:InitialHeapSize=\f[R]\f[I]size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3193
Sets the initial size (in bytes) of the memory allocation pool.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3194
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
  3195
MB.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3196
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
  3197
\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
  3198
\f[CB]G\f[R] to indicate gigabytes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3199
The default value is selected at run time based on the system
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3200
configuration.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3201
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3202
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3203
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
  3204
MB using various units:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3205
.IP
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  3206
.nf
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3207
\f[CB]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3208
\-XX:InitialHeapSize=6291456
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3209
\-XX:InitialHeapSize=6144k
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3210
\-XX:InitialHeapSize=6m
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3211
\f[R]
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  3212
.fi
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3213
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3214
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
  3215
the sizes allocated for the old generation and the young generation.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3216
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
  3217
\f[CB]\-XX:NewSize\f[R] option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3218
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3219
.TP
57571
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3220
.B \f[CB]\-XX:InitialRAMPercentage=\f[R]\f[I]percent\f[R]
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3221
Sets the initial amount of memory that the JVM will use for the Java
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3222
heap before applying ergonomics heuristics as a percentage of the
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3223
maximum amount determined as described in the \f[CB]\-XX:MaxRAM\f[R]
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3224
option.
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3225
The default value is 1.5625 percent.
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3226
.RS
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3227
.PP
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3228
The following example shows how to set the percentage of the initial
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3229
amount of memory used for the Java heap:
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3230
.RS
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3231
.PP
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3232
\f[CB]\-XX:InitialRAMPercentage=5\f[R]
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3233
.RE
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3234
.RE
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3235
.TP
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3236
.B \f[CB]\-XX:InitialSurvivorRatio=\f[R]\f[I]ratio\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3237
Sets the initial survivor space ratio used by the throughput garbage
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3238
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
  3239
\f[CB]\-XX:+UseParallelOldGC\f[R] options).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3240
Adaptive sizing is enabled by default with the throughput garbage
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3241
collector by using the \f[CB]\-XX:+UseParallelGC\f[R] and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3242
\f[CB]\-XX:+UseParallelOldGC\f[R] options, and the survivor space is
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3243
resized according to the application behavior, starting with the initial
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3244
value.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3245
If adaptive sizing is disabled (using the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3246
\f[CB]\-XX:\-UseAdaptiveSizePolicy\f[R] option), then the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3247
\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
  3248
survivor space for the entire execution of the application.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3249
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3250
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3251
The following formula can be used to calculate the initial size of
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3252
survivor space (S) based on the size of the young generation (Y), and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3253
the initial survivor space ratio (R):
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3254
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3255
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3256
\f[CB]S=Y/(R+2)\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3257
.RE
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
The 2 in the equation denotes two survivor spaces.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3260
The larger the value specified as the initial survivor space ratio, the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3261
smaller the initial survivor space size.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3262
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3263
By default, the initial survivor space ratio is set to 8.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3264
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
  3265
then the initial size of the survivor space is 0.2 MB.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3266
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3267
The following example shows how to set the initial survivor space ratio
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3268
to 4:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3269
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3270
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3271
\f[CB]\-XX:InitialSurvivorRatio=4\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3272
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3273
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3274
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3275
.B \f[CB]\-XX:InitiatingHeapOccupancyPercent=\f[R]\f[I]percent\f[R]
55666
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3276
Sets the percentage of the old generation occupancy (0 to 100) at which
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3277
to start the first few concurrent marking cycles for the G1 garbage
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3278
collector.
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3279
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3280
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3281
By default, the initiating value is set to 45%.
55666
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3282
A value of 0 implies nonstop concurrent GC cycles from the beginning
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3283
until G1 adaptively sets this value.
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3284
.PP
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3285
See also the \f[CB]\-XX:G1UseAdaptiveIHOP\f[R] and
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3286
\f[CB]\-XX:G1AdaptiveIHOPNumInitialSamples\f[R] options.
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3287
.PP
55140
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.
55666
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3301
By default, for G1 the maximum pause time target is 200 milliseconds.
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3302
The other generational collectors do not use a pause time goal by
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3303
default.
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3304
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3305
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3306
The following example shows how to set the maximum target pause time to
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3307
500 ms:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3308
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3309
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3310
\f[CB]\-XX:MaxGCPauseMillis=500\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3311
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3312
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3313
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3314
.B \f[CB]\-XX:MaxHeapSize=\f[R]\f[I]size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3315
Sets the maximum size (in byes) of the memory allocation pool.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3316
This value must be a multiple of 1024 and greater than 2 MB.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3317
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
  3318
\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
  3319
\f[CB]G\f[R] to indicate gigabytes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3320
The default value is selected at run time based on the system
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3321
configuration.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3322
For server deployments, the options \f[CB]\-XX:InitialHeapSize\f[R] and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3323
\f[CB]\-XX:MaxHeapSize\f[R] are often set to the same value.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3324
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3325
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3326
The following examples show how to set the maximum allowed size of
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3327
allocated memory to 80 MB using various units:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3328
.IP
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  3329
.nf
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3330
\f[CB]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3331
\-XX:MaxHeapSize=83886080
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3332
\-XX:MaxHeapSize=81920k
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3333
\-XX:MaxHeapSize=80m
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3334
\f[R]
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  3335
.fi
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3336
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3337
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
  3338
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3339
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3340
.B \f[CB]\-XX:MaxHeapFreeRatio=\f[R]\f[I]percent\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3341
Sets the maximum allowed percentage of free heap space (0 to 100) after
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3342
a GC event.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3343
If free heap space expands above this value, then the heap is shrunk.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3344
By default, this value is set to 70%.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3345
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3346
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3347
Minimize the Java heap size by lowering the values of the parameters
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3348
\f[CB]MaxHeapFreeRatio\f[R] (default value is 70%) and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3349
\f[CB]MinHeapFreeRatio\f[R] (default value is 40%) with the command\-line
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3350
options \f[CB]\-XX:MaxHeapFreeRatio\f[R] and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3351
\f[CB]\-XX:MinHeapFreeRatio\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3352
Lowering \f[CB]MaxHeapFreeRatio\f[R] to as low as 10% and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3353
\f[CB]MinHeapFreeRatio\f[R] to 5% has successfully reduced the heap size
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3354
without too much performance regression; however, results may vary
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3355
greatly depending on your application.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3356
Try different values for these parameters until they\[aq]re as low as
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3357
possible yet still retain acceptable performance.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3358
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3359
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3360
\f[CB]\-XX:MaxHeapFreeRatio=10\ \-XX:MinHeapFreeRatio=5\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3361
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3362
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3363
Customers trying to keep the heap small should also add the option
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3364
\f[CB]\-XX:\-ShrinkHeapInSteps\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3365
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
  3366
option to keep the Java heap small by reducing the dynamic footprint for
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3367
embedded applications.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3368
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3369
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3370
.B \f[CB]\-XX:MaxMetaspaceSize=\f[R]\f[I]size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3371
Sets the maximum amount of native memory that can be allocated for class
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3372
metadata.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3373
By default, the size isn\[aq]t limited.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3374
The amount of metadata for an application depends on the application
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3375
itself, other running applications, and the amount of memory available
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3376
on the system.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3377
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3378
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3379
The following example shows how to set the maximum class metadata size
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3380
to 256 MB:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3381
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3382
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3383
\f[CB]\-XX:MaxMetaspaceSize=256m\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3384
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3385
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3386
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3387
.B \f[CB]\-XX:MaxNewSize=\f[R]\f[I]size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3388
Sets the maximum size (in bytes) of the heap for the young generation
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3389
(nursery).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3390
The default value is set ergonomically.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3391
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3392
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3393
.TP
57571
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3394
.B \f[CB]\-XX:MaxRAM=\f[R]\f[I]size\f[R]
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3395
Sets the maximum amount of memory that the JVM may use for the Java heap
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3396
before applying ergonomics heuristics.
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3397
The default value is the maximum amount of available memory to the JVM
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3398
process or 128 GB, whichever is lower.
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3399
.RS
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3400
.PP
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3401
The maximum amount of available memory to the JVM process is the minimum
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3402
of the machine\[aq]s physical memory and any constraints set by the
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3403
environment (e.g.
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3404
container).
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3405
.PP
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3406
Specifying this option disables automatic use of compressed oops if the
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3407
combined result of this and other options influencing the maximum amount
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3408
of memory is larger than the range of memory addressable by compressed
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3409
oops.
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3410
See \f[CB]\-XX:UseCompressedOops\f[R] for further information about
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3411
compressed oops.
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3412
.PP
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3413
The following example shows how to set the maximum amount of available
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3414
memory for sizing the Java heap to 2 GB:
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3415
.RS
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3416
.PP
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3417
\f[CB]\-XX:MaxRAM=2G\f[R]
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3418
.RE
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3419
.RE
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3420
.TP
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3421
.B \f[CB]\-XX:MaxRAMPercentage=\f[R]\f[I]percent\f[R]
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3422
Sets the maximum amount of memory that the JVM may use for the Java heap
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3423
before applying ergonomics heuristics as a percentage of the maximum
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3424
amount determined as described in the \f[CB]\-XX:MaxRAM\f[R] option.
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3425
The default value is 25 percent.
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3426
.RS
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3427
.PP
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3428
Specifying this option disables automatic use of compressed oops if the
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3429
combined result of this and other options influencing the maximum amount
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3430
of memory is larger than the range of memory addressable by compressed
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3431
oops.
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3432
See \f[CB]\-XX:UseCompressedOops\f[R] for further information about
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3433
compressed oops.
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3434
.PP
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3435
The following example shows how to set the percentage of the maximum
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3436
amount of memory used for the Java heap:
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3437
.RS
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3438
.PP
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3439
\f[CB]\-XX:MaxRAMPercentage=75\f[R]
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3440
.RE
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3441
.RE
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3442
.TP
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3443
.B \f[CB]\-XX:MinRAMPercentage=\f[R]\f[I]percent\f[R]
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3444
Sets the maximum amount of memory that the JVM may use for the Java heap
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3445
before applying ergonomics heuristics as a percentage of the maximum
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3446
amount determined as described in the \f[CB]\-XX:MaxRAM\f[R] option for
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3447
small heaps.
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3448
A small heap is a heap of approximately 125 MB.
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3449
The default value is 50 percent.
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3450
.RS
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3451
.PP
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3452
The following example shows how to set the percentage of the maximum
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3453
amount of memory used for the Java heap for small heaps:
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3454
.RS
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3455
.PP
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3456
\f[CB]\-XX:MinRAMPercentage=75\f[R]
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3457
.RE
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3458
.RE
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3459
.TP
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3460
.B \f[CB]\-XX:MaxTenuringThreshold=\f[R]\f[I]threshold\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3461
Sets the maximum tenuring threshold for use in adaptive GC sizing.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3462
The largest value is 15.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3463
The default value is 15 for the parallel (throughput) collector, and 6
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3464
for the CMS collector.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3465
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3466
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3467
The following example shows how to set the maximum tenuring threshold to
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3468
10:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3469
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3470
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3471
\f[CB]\-XX:MaxTenuringThreshold=10\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3472
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3473
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3474
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3475
.B \f[CB]\-XX:MetaspaceSize=\f[R]\f[I]size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3476
Sets the size of the allocated class metadata space that triggers a
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3477
garbage collection the first time it\[aq]s exceeded.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3478
This threshold for a garbage collection is increased or decreased
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3479
depending on the amount of metadata used.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3480
The default size depends on the platform.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3481
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3482
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3483
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3484
.B \f[CB]\-XX:MinHeapFreeRatio=\f[R]\f[I]percent\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3485
Sets the minimum allowed percentage of free heap space (0 to 100) after
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3486
a GC event.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3487
If free heap space falls below this value, then the heap is expanded.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3488
By default, this value is set to 40%.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3489
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3490
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3491
Minimize Java heap size by lowering the values of the parameters
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3492
\f[CB]MaxHeapFreeRatio\f[R] (default value is 70%) and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3493
\f[CB]MinHeapFreeRatio\f[R] (default value is 40%) with the command\-line
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3494
options \f[CB]\-XX:MaxHeapFreeRatio\f[R] and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3495
\f[CB]\-XX:MinHeapFreeRatio\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3496
Lowering \f[CB]MaxHeapFreeRatio\f[R] to as low as 10% and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3497
\f[CB]MinHeapFreeRatio\f[R] to 5% has successfully reduced the heap size
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3498
without too much performance regression; however, results may vary
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3499
greatly depending on your application.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3500
Try different values for these parameters until they\[aq]re as low as
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3501
possible, yet still retain acceptable performance.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3502
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3503
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3504
\f[CB]\-XX:MaxHeapFreeRatio=10\ \-XX:MinHeapFreeRatio=5\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3505
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3506
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3507
Customers trying to keep the heap small should also add the option
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3508
\f[CB]\-XX:\-ShrinkHeapInSteps\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3509
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
  3510
option to keep the Java heap small by reducing the dynamic footprint for
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3511
embedded applications.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3512
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3513
.TP
55666
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3514
.B \f[CB]\-XX:MinHeapSize=\f[R]\f[I]size\f[R]
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3515
Sets the minimum size (in bytes) of the memory allocation pool.
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3516
This value must be either 0, or a multiple of 1024 and greater than 1
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3517
MB.
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3518
Append the letter \f[CB]k\f[R] or \f[CB]K\f[R] to indicate kilobytes,
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3519
\f[CB]m\f[R] or \f[CB]M\f[R] to indicate megabytes, or \f[CB]g\f[R] or
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3520
\f[CB]G\f[R] to indicate gigabytes.
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3521
The default value is selected at run time based on the system
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3522
configuration.
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3523
.RS
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3524
.PP
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3525
The following examples show how to set the mimimum size of allocated
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3526
memory to 6 MB using various units:
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3527
.IP
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3528
.nf
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3529
\f[CB]
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3530
\-XX:MinHeapSize=6291456
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3531
\-XX:MinHeapSize=6144k
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3532
\-XX:MinHeapSize=6m
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3533
\f[R]
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3534
.fi
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3535
.PP
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3536
If you set this option to 0, then the minimum size is set to the same
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3537
value as the initial size.
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3538
.RE
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3539
.TP
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3540
.B \f[CB]\-XX:NewRatio=\f[R]\f[I]ratio\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3541
Sets the ratio between young and old generation sizes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3542
By default, this option is set to 2.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3543
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
  3544
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3545
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3546
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3547
\f[CB]\-XX:NewRatio=1\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3548
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3549
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3550
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3551
.B \f[CB]\-XX:NewSize=\f[R]\f[I]size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3552
Sets the initial size (in bytes) of the heap for the young generation
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3553
(nursery).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3554
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
  3555
\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
  3556
\f[CB]G\f[R] to indicate gigabytes.
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 young generation region of the heap is used for new objects.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3560
GC is performed in this region more often than in other regions.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3561
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
  3562
minor GCs are performed.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3563
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
  3564
take a long time to complete.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3565
It is recommended that you keep the size for the young generation
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3566
greater than 25% and less than 50% of the overall heap size.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3567
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3568
The following examples show how to set the initial size of the young
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3569
generation to 256 MB using various units:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3570
.IP
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  3571
.nf
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3572
\f[CB]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3573
\-XX:NewSize=256m
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3574
\-XX:NewSize=262144k
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3575
\-XX:NewSize=268435456
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3576
\f[R]
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  3577
.fi
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3578
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3579
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
  3580
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3581
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3582
.B \f[CB]\-XX:ParallelGCThreads=\f[R]\f[I]threads\f[R]
55666
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3583
Sets the number of the stop\-the\-world (STW) worker threads.
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3584
The default value depends on the number of CPUs available to the JVM and
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3585
the garbage collector selected.
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3586
.RS
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3587
.PP
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3588
For example, to set the number of threads for G1 GC to 2, specify the
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3589
following option:
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3590
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3591
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3592
\f[CB]\-XX:ParallelGCThreads=2\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3593
.RE
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
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3596
.B \f[CB]\-XX:+ParallelRefProcEnabled\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3597
Enables parallel reference processing.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3598
By default, this option is disabled.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3599
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3600
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3601
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3602
.B \f[CB]\-XX:+PrintAdaptiveSizePolicy\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3603
Enables printing of information about adaptive\-generation sizing.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3604
By default, this option is disabled.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3605
.RS
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
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3608
.B \f[CB]\-XX:+ScavengeBeforeFullGC\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3609
Enables GC of the young generation before each full GC.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3610
This option is enabled by default.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3611
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
  3612
scavenging the young generation before a full GC can reduce the number
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3613
of objects reachable from the old generation space into the young
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3614
generation space.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3615
To disable GC of the young generation before each full GC, specify the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3616
option \f[CB]\-XX:\-ScavengeBeforeFullGC\f[R].
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
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3619
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3620
.B \f[CB]\-XX:SoftRefLRUPolicyMSPerMB=\f[R]\f[I]time\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3621
Sets the amount of time (in milliseconds) a softly reachable object is
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3622
kept active on the heap after the last time it was referenced.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3623
The default value is one second of lifetime per free megabyte in the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3624
heap.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3625
The \f[CB]\-XX:SoftRefLRUPolicyMSPerMB\f[R] option accepts integer values
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3626
representing milliseconds per one megabyte of the current heap size (for
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3627
Java HotSpot Client VM) or the maximum possible heap size (for Java
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3628
HotSpot Server VM).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3629
This difference means that the Client VM tends to flush soft references
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3630
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
  3631
rather than flush soft references.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3632
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
  3633
significant effect on how quickly soft references are garbage collected.
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
The following example shows how to set the value to 2.5 seconds:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3637
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3638
\f[CB]\-XX:SoftRefLRUPolicyMSPerMB=2500\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3639
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3640
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3641
.B \f[CB]\-XX:\-ShrinkHeapInSteps\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3642
Incrementally reduces the Java heap to the target size, specified by the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3643
option \f[CB]\-XX:MaxHeapFreeRatio\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3644
This option is enabled by default.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3645
If disabled, then it immediately reduces the Java heap to the target
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3646
size instead of requiring multiple garbage collection cycles.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3647
Disable this option if you want to minimize the Java heap size.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3648
You will likely encounter performance degradation when this option is
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3649
disabled.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3650
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3651
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3652
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
  3653
\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
  3654
the dynamic footprint for embedded applications.
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:StringDeduplicationAgeThreshold=\f[R]\f[I]threshold\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3658
Identifies \f[CB]String\f[R] objects reaching the specified age that are
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3659
considered candidates for deduplication.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3660
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
  3661
garbage collection.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3662
This is sometimes referred to as tenuring.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3663
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3664
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3665
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3666
\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
  3667
region before this age has been reached are always considered candidates
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3668
for deduplication.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3669
The default value for this option is \f[CB]3\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3670
See the \f[CB]\-XX:+UseStringDeduplication\f[R] option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3671
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3672
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3673
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3674
.B \f[CB]\-XX:SurvivorRatio=\f[R]\f[I]ratio\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3675
Sets the ratio between eden space size and survivor space size.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3676
By default, this option is set to 8.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3677
The following example shows how to set the eden/survivor space ratio to
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3678
4:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3679
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3680
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3681
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3682
\f[CB]\-XX:SurvivorRatio=4\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3683
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3684
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3685
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3686
.B \f[CB]\-XX:TargetSurvivorRatio=\f[R]\f[I]percent\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3687
Sets the desired percentage of survivor space (0 to 100) used after
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3688
young garbage collection.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3689
By default, this option is set to 50%.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3690
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3691
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3692
The following example shows how to set the target survivor space ratio
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3693
to 30%:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3694
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3695
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3696
\f[CB]\-XX:TargetSurvivorRatio=30\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3697
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3698
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3699
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3700
.B \f[CB]\-XX:TLABSize=\f[R]\f[I]size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3701
Sets the initial size (in bytes) of a thread\-local allocation buffer
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3702
(TLAB).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3703
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
  3704
\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
  3705
\f[CB]G\f[R] to indicate gigabytes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3706
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
  3707
automatically.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3708
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3709
.PP
21743
3d979da7bdf0 8029043: Update nroff files for JDK 8
rgallard
parents: 14342
diff changeset
  3710
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
  3711
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3712
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3713
\f[CB]\-XX:TLABSize=512k\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3714
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3715
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3716
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3717
.B \f[CB]\-XX:+UseAdaptiveSizePolicy\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3718
Enables the use of adaptive generation sizing.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3719
This option is enabled by default.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3720
To disable adaptive generation sizing, specify
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3721
\f[CB]\-XX:\-UseAdaptiveSizePolicy\f[R] and set the size of the memory
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3722
allocation pool explicitly.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3723
See the \f[CB]\-XX:SurvivorRatio\f[R] option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3724
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3725
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3726
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3727
.B \f[CB]\-XX:+UseCMSInitiatingOccupancyOnly\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3728
Enables the use of the occupancy value as the only criterion for
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3729
initiating the CMS collector.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3730
By default, this option is disabled and other criteria may be used.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3731
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3732
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3733
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3734
.B \f[CB]\-XX:+UseG1GC\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3735
Enables the use of the garbage\-first (G1) garbage collector.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3736
It\[aq]s a server\-style garbage collector, targeted for multiprocessor
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3737
machines with a large amount of RAM.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3738
This option meets GC pause time goals with high probability, while
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3739
maintaining good throughput.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3740
The G1 collector is recommended for applications requiring large heaps
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3741
(sizes of around 6 GB or larger) with limited GC latency requirements (a
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3742
stable and predictable pause time below 0.5 seconds).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3743
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
  3744
collector.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3745
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3746
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3747
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3748
.B \f[CB]\-XX:+UseGCOverheadLimit\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3749
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
  3750
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
  3751
This option is enabled, by default, and the parallel GC will throw an
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3752
\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
  3753
garbage collection and less than 2% of the heap is recovered.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3754
When the heap is small, this feature can be used to prevent applications
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3755
from running for long periods of time with little or no progress.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3756
To disable this option, specify the option
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3757
\f[CB]\-XX:\-UseGCOverheadLimit\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3758
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3759
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3760
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3761
.B \f[CB]\-XX:+UseNUMA\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3762
Enables performance optimization of an application on a machine with
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3763
nonuniform memory architecture (NUMA) by increasing the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3764
application\[aq]s use of lower latency memory.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3765
By default, this option is disabled and no optimization for NUMA is
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3766
made.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3767
The option is available only when the parallel garbage collector is used
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3768
(\f[CB]\-XX:+UseParallelGC\f[R]).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3769
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3770
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3771
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3772
.B \f[CB]\-XX:+UseParallelGC\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3773
Enables the use of the parallel scavenge garbage collector (also known
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3774
as the throughput collector) to improve the performance of your
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3775
application by leveraging multiple processors.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3776
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3777
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3778
By default, this option is disabled and the default collector is used.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3779
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
  3780
automatically enabled, unless you explicitly disable it.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3781
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3782
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3783
.B \f[CB]\-XX:+UseParallelOldGC\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3784
Enables the use of the parallel garbage collector for full GCs.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3785
By default, this option is disabled.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3786
Enabling it automatically enables the \f[CB]\-XX:+UseParallelGC\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3787
option.
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:+UseSerialGC\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3792
Enables the use of the serial garbage collector.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3793
This is generally the best choice for small and simple applications that
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3794
don\[aq]t require any special functionality from garbage collection.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3795
By default, this option is disabled and the default collector is used.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3796
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3797
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3798
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3799
.B \f[CB]\-XX:+UseSHM\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3800
\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
  3801
large pages.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3802
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3803
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3804
See \f[B]Large Pages\f[R] for setting up large pages.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3805
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3806
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3807
.B \f[CB]\-XX:+UseStringDeduplication\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3808
Enables string deduplication.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3809
By default, this option is disabled.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3810
To use this option, you must enable the garbage\-first (G1) garbage
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3811
collector.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3812
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3813
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3814
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
  3815
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
  3816
\f[CB]String\f[R] objects are identical.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3817
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
  3818
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
  3819
character array.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3820
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3821
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3822
.B \f[CB]\-XX:+UseTLAB\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3823
Enables the use of thread\-local allocation blocks (TLABs) in the young
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3824
generation space.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3825
This option is enabled by default.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3826
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
  3827
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3828
.RE
55666
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3829
.TP
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3830
.B \f[CB]\-XX:+UseZGC\f[R]
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3831
Enables the use of the Z garbage collector.
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3832
This garbage collector is best for providing lowest latency with large
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3833
Java heaps at some throughput cost.
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3834
This is an experimental garbage collector, you need to specify
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3835
\f[CB]\-XX:+UnlockExperimentalVMOptions\f[R] before \f[CB]\-XX:+UseZGC\f[R]
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3836
on the command line.
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3837
.RS
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3838
.PP
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3839
Example:
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3840
.RS
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3841
.PP
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3842
\f[CB]\-XX:+UnlockExperimentalVMOptions\ \-XX:+UseZGC\f[R]
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3843
.RE
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3844
.RE
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3845
.SH DEPRECATED JAVA OPTIONS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3846
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3847
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
  3848
future JDK release.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3849
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
  3850
they\[aq]re used.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3851
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3852
.B \f[CB]\-Xfuture\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3853
Enables strict class\-file format checks that enforce close conformance
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3854
to the class\-file format specification.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3855
Developers should use this flag when developing new code.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3856
Stricter checks may become the default in future releases.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3857
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3858
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3859
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3860
.B \f[CB]\-Xloggc:\f[R]\f[I]filename\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3861
Sets the file to which verbose GC events information should be
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3862
redirected for logging.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3863
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
  3864
given with the same java command.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3865
\f[CB]\-Xloggc:\f[R]\f[I]filename\f[R] is replaced by
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3866
\f[CB]\-Xlog:gc:\f[R]\f[I]filename\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3867
See Enable Logging with the JVM Unified Logging Framework.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3868
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3869
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3870
Example:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3871
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3872
\f[CB]\-Xlog:gc:garbage\-collection.log\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3873
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3874
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3875
.B \f[CB]\-XX:+FailOverToOldVerifier\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3876
Enables automatic failover to the old verifier when the new type checker
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3877
fails.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3878
By default, this option is disabled and it\[aq]s ignored (that is,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3879
treated as disabled) for classes with a recent bytecode version.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3880
You can enable it only for classes with older versions of the bytecode.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3881
.RS
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
55666
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3884
.B \f[CB]\-XX:+FlightRecorder\f[R]
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3885
Enables the use of Java Flight Recorder (JFR) during the runtime of the
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3886
application.
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3887
Since JDK 8u40 this option has not been required to use JFR.
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3888
.RS
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3889
.RE
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  3890
.TP
57571
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3891
.B \f[CB]\-XX:InitialRAMFraction=\f[R]\f[I]ratio\f[R]
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3892
Sets the initial amount of memory that the JVM may use for the Java heap
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3893
before applying ergonomics heuristics as a ratio of the maximum amount
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3894
determined as described in the \f[CB]\-XX:MaxRAM\f[R] option.
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3895
The default value is 64.
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3896
.RS
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3897
.PP
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3898
Use the option \f[CB]\-XX:InitialRAMPercentage\f[R] instead.
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3899
.RE
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3900
.TP
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3901
.B \f[CB]\-XX:MaxRAMFraction=\f[R]\f[I]ratio\f[R]
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3902
Sets the maximum amount of memory that the JVM may use for the Java heap
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3903
before applying ergonomics heuristics as a fraction of the maximum
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3904
amount determined as described in the \f[CB]\-XX:MaxRAM\f[R] option.
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3905
The default value is 4.
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3906
.RS
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3907
.PP
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3908
Specifying this option disables automatic use of compressed oops if the
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3909
combined result of this and other options influencing the maximum amount
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3910
of memory is larger than the range of memory addressable by compressed
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3911
oops.
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3912
See \f[CB]\-XX:UseCompressedOops\f[R] for further information about
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3913
compressed oops.
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3914
.PP
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3915
Use the option \f[CB]\-XX:MaxRAMPercentage\f[R] instead.
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3916
.RE
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3917
.TP
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3918
.B \f[CB]\-XX:MinRAMFraction=\f[R]\f[I]ratio\f[R]
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3919
Sets the maximum amount of memory that the JVM may use for the Java heap
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3920
before applying ergonomics heuristics as a fraction of the maximum
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3921
amount determined as described in the \f[CB]\-XX:MaxRAM\f[R] option for
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3922
small heaps.
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3923
A small heap is a heap of approximately 125 MB.
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3924
The default value is 2.
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3925
.RS
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3926
.PP
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3927
Use the option \f[CB]\-XX:MinRAMPercentage\f[R] instead.
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3928
.RE
0a4829e4ad6b 8228494: Update nroff version of man pages
jjg
parents: 55666
diff changeset
  3929
.TP
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3930
.B \f[CB]\-XX:+TraceClassLoading\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3931
Enables tracing of classes as they are loaded.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3932
By default, this option is disabled and classes aren\[aq]t traced.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3933
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3934
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3935
The replacement Unified Logging syntax is
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3936
\f[CB]\-Xlog:class+load=\f[R]\f[I]level\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3937
See \f[B]Enable Logging with the JVM Unified Logging Framework\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3938
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3939
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
  3940
\f[I]level\f[R]=\f[CB]debug\f[R] for additional information.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3941
In Unified Logging syntax, \f[CB]\-verbose:class\f[R] equals
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3942
\f[CB]\-Xlog:class+load=info,class+unload=info\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3943
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3944
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3945
.B \f[CB]\-XX:+TraceClassLoadingPreorder\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3946
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
  3947
referenced.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3948
By default, this option is disabled and classes aren\[aq]t traced.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3949
.RS
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
The replacement Unified Logging syntax is
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3952
\f[CB]\-Xlog:class+preorder=debug\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3953
See \f[B]Enable Logging with the JVM Unified Logging Framework\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3954
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3955
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3956
.B \f[CB]\-XX:+TraceClassResolution\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3957
Enables tracing of constant pool resolutions.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3958
By default, this option is disabled and constant pool resolutions
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3959
aren\[aq]t traced.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3960
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3961
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3962
The replacement Unified Logging syntax is
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3963
\f[CB]\-Xlog:class+resolve=debug\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3964
See \f[B]Enable Logging with the JVM Unified Logging Framework\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3965
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3966
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3967
.B \f[CB]\-XX:+TraceLoaderConstraints\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3968
Enables tracing of the loader constraints recording.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3969
By default, this option is disabled and loader constraints recording
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3970
isn\[aq]t traced.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3971
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3972
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3973
The replacement Unified Logging syntax is
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3974
\f[CB]\-Xlog:class+loader+constraints=info\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3975
See \f[B]Enable Logging with the JVM Unified Logging Framework\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3976
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3977
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3978
.B \f[CB]\-XX:+UseConcMarkSweepGC\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3979
Enables the use of the CMS garbage collector for the old generation.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3980
CMS is an alternative to the default garbage collector (G1), which also
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3981
focuses on meeting application latency requirements.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3982
By default, this option is disabled and the collector is selected
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3983
automatically based on the configuration of the machine and type of the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3984
JVM.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3985
The CMS garbage collector is deprecated.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3986
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3987
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3988
.SH OBSOLETE JAVA OPTIONS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3989
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3990
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
  3991
warning is issued when they\[aq]re used.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3992
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3993
.B \f[CB]\-XX:+UseMembar\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3994
Enabled issuing membars on thread\-state transitions.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3995
This option was disabled by default on all platforms except ARM servers,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3996
where it was enabled.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3997
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3998
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  3999
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4000
.B \f[CB]\-XX:MaxPermSize=\f[R]\f[I]size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4001
Sets the maximum permanent generation space size (in bytes).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4002
This option was deprecated in JDK 8 and superseded by the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4003
\f[CB]\-XX:MaxMetaspaceSize\f[R] option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4004
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4005
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4006
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4007
.B \f[CB]\-XX:PermSize=\f[R]\f[I]size\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4008
Sets the space (in bytes) allocated to the permanent generation that
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4009
triggers a garbage collection if it\[aq]s exceeded.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4010
This option was deprecated in JDK 8 and superseded by the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4011
\f[CB]\-XX:MetaspaceSize\f[R] option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4012
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4013
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4014
.SH REMOVED JAVA OPTIONS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4015
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4016
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
  4017
results in an error of:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4018
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4019
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4020
\f[CB]Unrecognized\ VM\ option\f[R] \f[I]option\-name\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4021
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4022
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4023
.B \f[CB]\-XX:+AggressiveOpts\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4024
Enabled the use of aggressive performance optimization features.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4025
By default, this option was disabled and experimental performance
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4026
features were not used.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4027
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4028
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4029
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4030
For the lists and descriptions of options removed in previous releases
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4031
see the \f[I]Removed Java Options\f[R] section in:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4032
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4033
\f[B]Java Platform, Standard Edition Tools Reference, Release 12\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4034
[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
  4035
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4036
\f[B]Java Platform, Standard Edition Tools Reference, Release 11\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4037
[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
  4038
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4039
\f[B]Java Platform, Standard Edition Tools Reference, Release 10\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4040
[https://docs.oracle.com/javase/10/tools/java.htm#JSWOR624]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4041
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4042
\f[B]Java Platform, Standard Edition Tools Reference, Release 9\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4043
[https://docs.oracle.com/javase/9/tools/java.htm#JSWOR624]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4044
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4045
\f[B]Java Platform, Standard Edition Tools Reference, Release 8 for
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4046
Oracle JDK on Windows\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4047
[https://docs.oracle.com/javase/8/docs/technotes/tools/windows/java.html#BGBCIEFC]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4048
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4049
\f[B]Java Platform, Standard Edition Tools Reference, Release 8 for
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4050
Oracle JDK on Solaris, Linux, and macOS\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4051
[https://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.html#BGBCIEFC]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4052
.SH JAVA COMMAND\-LINE ARGUMENT FILES
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4053
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4054
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
  4055
\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
  4056
contain arguments, such as options and class names, which are passed to
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4057
the \f[CB]java\f[R] command.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4058
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
  4059
operating system.
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
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
  4062
argument file that contains \f[CB]java\f[R] options and class names.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4063
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
  4064
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
  4065
argument list just as they would be specified on the command line.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4066
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4067
The \f[CB]java\f[R] launcher expands the argument file contents until it
55666
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  4068
encounters the \f[CB]\-\-disable\-\@files\f[R] option.
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  4069
You can use the \f[CB]\-\-disable\-\@files\f[R] option anywhere on the
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4070
command line, including in an argument file, to stop \f[CB]\@\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4071
argument files expansion.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4072
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4073
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
  4074
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4075
The argument file must contain only ASCII characters or characters in
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4076
system default encoding that\[aq]s ASCII friendly, such as UTF\-8.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4077
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4078
The argument file size must not exceed MAXINT (2,147,483,647) bytes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4079
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4080
The launcher doesn\[aq]t expand wildcards that are present within an
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4081
argument file.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4082
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4083
Use white space or new line characters to separate arguments included in
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4084
the file.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4085
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4086
White space includes a white space character, \f[CB]\\t\f[R],
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4087
\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
  4088
.RS 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4089
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4090
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
  4091
\f[CB]c:\\Program\ Files\f[R] that can be specified as either
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4092
\f[CB]"c:\\\\Program\ Files"\f[R] or, to avoid an escape,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4093
\f[CB]c:\\Program"\ "Files\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4094
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4095
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4096
Any option that contains spaces, such as a path component, must be
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4097
within quotation marks using quotation (\[aq]"\[aq]) characters in its
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4098
entirety.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4099
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4100
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
  4101
\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
  4102
They are converted to their respective ASCII codes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4103
\ 
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4104
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4105
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
  4106
double quotation marks.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4107
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4108
File names in an argument file are relative to the current directory,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4109
not to the location of the argument file.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4110
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4111
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
  4112
comments.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4113
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
  4114
line.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4115
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4116
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
  4117
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
  4118
arguments are presented to the launcher literally).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4119
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4120
Lines may be continued using the continuation character (\f[CB]\\\f[R]) at
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4121
the end\-of\-line.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4122
The two lines are concatenated with the leading white spaces trimmed.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4123
To prevent trimming the \ leading white spaces, a continuation character
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4124
(\f[CB]\\\f[R]) may be placed at the first column.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4125
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4126
Because backslash (\\) is an escape character, a backslash
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4127
character\ must be escaped with another backslash character.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4128
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4129
Partial quote is allowed and is closed by an end\-of\-file.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4130
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4131
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
  4132
character, which then joins the next line by removing all leading white
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4133
space characters.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4134
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4135
Wildcards (*) aren\[aq]t allowed in these lists (such as specifying
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4136
\f[CB]*.java\f[R]).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4137
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4138
Use of the at sign (\f[CB]\@\f[R]) to recursively interpret files
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4139
isn\[aq]t supported.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4140
.SS Example of Open or Partial Quotes in an Argument File
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4141
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4142
In the argument file,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4143
.IP
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  4144
.nf
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4145
\f[CB]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4146
\-cp\ "lib/
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4147
cool/
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4148
app/
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4149
jars
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4150
\f[R]
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  4151
.fi
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4152
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4153
this is interpreted as:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4154
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4155
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4156
\f[CB]\-cp\ lib/cool/app/jars\f[R]
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
.SS Example of a Backslash Character\ Escaped with Another Backslash
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4159
Character in an Argument File
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4160
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4161
To output the following:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4162
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4163
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4164
\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
  4165
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4166
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4167
The backslash character must be specified in the argument file as:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4168
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4169
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4170
\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
  4171
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4172
.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
  4173
Argument File
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4174
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4175
In the argument file,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4176
.IP
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  4177
.nf
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4178
\f[CB]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4179
\-cp\ "/lib/cool\ app/jars:\\
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4180
\ \ \ \ /lib/another\ app/jars"
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4181
\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4182
.fi
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4183
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4184
This is interpreted as:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4185
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4186
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4187
\f[CB]\-cp\ /lib/cool\ app/jars:/lib/another\ app/jars\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4188
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4189
.SS Example of Line Continuation with Leading Spaces in an Argument File
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4190
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4191
In the argument file,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4192
.IP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4193
.nf
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4194
\f[CB]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4195
\-cp\ "/lib/cool\\
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4196
\\app/jars”
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4197
\f[R]
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  4198
.fi
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4199
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4200
This is interpreted as:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4201
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4202
\f[CB]\-cp\ /lib/cool\ app/jars\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4203
.SS Examples of Using Single Argument File
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4204
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4205
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
  4206
the following example, to hold all required \f[CB]java\f[R] arguments:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4207
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4208
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4209
\f[CB]java\ \@myargumentfile\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4210
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4211
.SS Examples of Using Argument Files with Paths
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4212
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4213
You can include relative paths in argument files; however, they\[aq]re
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4214
relative to the current working directory and not to the paths of the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4215
argument files themselves.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4216
In the following example, \f[CB]path1/options\f[R] and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4217
\f[CB]path2/options\f[R] represent argument files with different paths.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4218
Any relative paths that they contain are relative to the current working
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4219
directory and not to the argument files:
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[CB]java\ \@path1/options\ \@path2/classes\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
.SH CODE HEAP STATE ANALYTICS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4225
.SS Overview
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4226
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4227
There are occasions when having insight into the current state of the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4228
JVM code heap would be helpful to answer questions such as:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4229
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4230
Why was the JIT turned off and then on again and again?
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4231
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4232
Where has all the code heap space gone?
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4233
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4234
Why is the method sweeper not working effectively?
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4235
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4236
To provide this insight, a code heap state analytics feature has been
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4237
implemented that enables on\-the\-fly analysis of the code heap.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4238
The analytics process is divided into two parts.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4239
The first part examines the entire code heap and aggregates all
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4240
information that is believed to be useful or important.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4241
The second part consists of several independent steps that print the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4242
collected information with an emphasis on different aspects of the data.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4243
Data collection and printing are done on an "on request" basis.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4244
.SS Syntax
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4245
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4246
Requests for real\-time, on\-the\-fly analysis can be issued with the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4247
following command:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4248
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4249
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4250
\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
  4251
[\f[I]function\f[R]] [\f[I]granularity\f[R]]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4252
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4253
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4254
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
  4255
a sample workload, you can use the command line option:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4256
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4257
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4258
\f[CB]\-Xlog:codecache=Trace\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4259
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4260
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4261
To see the code heap state when a "CodeCache full" condition exists,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4262
start the VM with the command line option:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4263
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4264
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4265
\f[CB]\-Xlog:codecache=Debug\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4266
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4267
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4268
See \f[B]CodeHeap State Analytics (OpenJDK)\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4269
[https://bugs.openjdk.java.net/secure/attachment/75649/JVM_CodeHeap_StateAnalytics_V2.pdf]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4270
for a detailed description of the code heap state analytics feature, the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4271
supported functions, and the granularity options.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4272
.SH ENABLE LOGGING WITH THE JVM UNIFIED LOGGING FRAMEWORK
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
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
  4275
the Java Virtual Machine (JVM) unified logging framework.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4276
.SS Synopsis
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4277
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4278
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4279
\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
  4280
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4281
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4282
.B \f[I]what\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4283
Specifies a combination of tags and levels of the form
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4284
\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
  4285
Unless the wildcard (\f[CB]*\f[R]) is specified, only log messages tagged
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4286
with exactly the tags specified are matched.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4287
See \f[B]\-Xlog Tags and Levels\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4288
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4289
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4290
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4291
.B \f[I]output\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4292
Sets the type of output.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4293
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
  4294
See \f[B]\-Xlog Output\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4295
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4296
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4297
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4298
.B \f[I]decorators\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4299
Configures the output to use a custom set of decorators.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4300
Omitting \f[I]decorators\f[R] defaults to \f[CB]uptime\f[R],
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4301
\f[CB]level\f[R], and \f[CB]tags\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4302
See \f[B]Decorations\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4303
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4304
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4305
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4306
.B \f[I]output\-options\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4307
Sets the \f[CB]\-Xlog\f[R] logging output options.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4308
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4309
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4310
.SS Description
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4311
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4312
The Java Virtual Machine (JVM) unified logging framework provides a
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4313
common logging system for all components of the JVM.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4314
GC logging for the JVM has been changed to use the new logging
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4315
framework.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4316
The mapping of old GC flags to the corresponding new Xlog configuration
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4317
is described in \f[B]Convert GC Logging Flags to Xlog\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4318
In addition, runtime logging has also been changed to use the JVM
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4319
unified logging framework.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4320
The mapping of legacy runtime logging flags to the corresponding new
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4321
Xlog configuration is described in \f[B]Convert Runtime Logging Flags to
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4322
Xlog\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4323
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4324
The following provides quick reference to the \f[CB]\-Xlog\f[R] command
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4325
and syntax for options:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4326
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4327
.B \f[CB]\-Xlog\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4328
Enables JVM logging on an \f[CB]info\f[R] level.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4329
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4330
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4331
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4332
.B \f[CB]\-Xlog:help\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4333
Prints \f[CB]\-Xlog\f[R] usage syntax and available tags, levels, and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4334
decorators along with example command lines with explanations.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4335
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4336
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4337
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4338
.B \f[CB]\-Xlog:disable\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4339
Turns off all logging and clears all configuration of the logging
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4340
framework including the default configuration for warnings and errors.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4341
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4342
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4343
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4344
.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
  4345
Applies multiple arguments in the order that they appear on the command
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4346
line.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4347
Multiple \f[CB]\-Xlog\f[R] arguments for the same output override each
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4348
other in their given order.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4349
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4350
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4351
The \f[I]option\f[R] is set as:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4352
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4353
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4354
[\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
  4355
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4356
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4357
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
  4358
\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
  4359
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4360
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4361
\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
  4362
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4363
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4364
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
  4365
available.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4366
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
  4367
match.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4368
Matching with a wildcard selects all tag sets that contain \f[I]at
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4369
least\f[R] the specified tags.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4370
Without the wildcard, only exact matches of the specified tag sets are
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4371
selected.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4372
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4373
\f[I]output\-options\f[R] is
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4374
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4375
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4376
\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
  4377
with optional K, M or G suffix\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4378
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4379
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4380
.SS Default Configuration
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4381
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4382
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
  4383
command line, the default configuration is used.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4384
The default configuration logs all messages with a level that matches
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4385
either warning or error regardless of what tags the message is
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4386
associated with.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4387
The default configuration is equivalent to entering the following on the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4388
command line:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4389
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4390
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4391
\f[CB]\-Xlog:all=warning:stdout:uptime,level,tags\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4392
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4393
.SS Controlling Logging at Runtime
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4394
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4395
Logging can also be controlled at run time through Diagnostic Commands
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4396
(with the \f[B]jcmd\f[R] utility).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4397
Everything that can be specified on the command line can also be
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4398
specified dynamically with the \f[CB]VM.log\f[R] command.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4399
As the diagnostic commands are automatically exposed as MBeans, you can
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4400
use JMX to change logging configuration at run time.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4401
.SS \-Xlog Tags and Levels
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4402
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4403
Each log message has a level and a tag set associated with it.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4404
The level of the message corresponds to its details, and the tag set
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4405
corresponds to what the message contains or which JVM component it
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4406
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
  4407
Mapping GC flags to the Xlog configuration is described in \f[B]Convert
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4408
GC Logging Flags to Xlog\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4409
Mapping legacy runtime logging flags to the corresponding Xlog
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4410
configuration is described in \f[B]Convert Runtime Logging Flags to
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4411
Xlog\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4412
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4413
\f[B]Available log levels:\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4414
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4415
\f[CB]off\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4416
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4417
\f[CB]trace\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4418
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4419
\f[CB]debug\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4420
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4421
\f[CB]info\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4422
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4423
\f[CB]warning\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4424
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4425
\f[CB]error\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4426
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4427
\f[B]Available log tags:\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4428
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4429
There are literally dozens of log tags, which in the right combinations,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4430
will enable a range of logging output.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4431
The full set of available log tags can be seen using
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4432
\f[CB]\-Xlog:help\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4433
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
  4434
combinations.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4435
.SS \-Xlog Output
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4436
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4437
The \f[CB]\-Xlog\f[R] option supports the following types of outputs:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4438
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4439
\f[CB]stdout\f[R] \-\-\- Sends output to stdout
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4440
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4441
\f[CB]stderr\f[R] \-\-\- Sends output to stderr
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4442
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4443
\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
  4444
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4445
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
  4446
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
  4447
startup timestamp, respectively.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4448
You can also configure text files to handle file rotation based on file
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4449
size and a number of files to rotate.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4450
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
  4451
rotation, specify the options \f[CB]filesize=10M,\ filecount=5\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4452
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
  4453
just an approximate value.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4454
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
  4455
20 MB, unless configured otherwise.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4456
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
  4457
rotated.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4458
There\[aq]s a possibility of the pre\-existing log file getting
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4459
overwritten.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4460
.SS Decorations
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4461
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4462
Logging messages are decorated with information about the message.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4463
You can configure each output to use a custom set of decorators.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4464
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
  4465
You can configure the decorations to be used at run time.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4466
Decorations are prepended to the log message.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4467
For example:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4468
.IP
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  4469
.nf
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4470
\f[CB]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4471
[6.567s][info][gc,old]\ Old\ collection\ complete
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4472
\f[R]
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  4473
.fi
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4474
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4475
Omitting \f[CB]decorators\f[R] defaults to \f[CB]uptime\f[R],
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4476
\f[CB]level\f[R], and \f[CB]tags\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4477
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
  4478
decorations.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4479
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4480
\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
  4481
\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
  4482
\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
  4483
\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
  4484
\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
  4485
(\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
  4486
specified as \f[CB]none\f[R] for no decoration.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4487
.PP
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  4488
.TS
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4489
tab(@);
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4490
lw(14.9n) lw(55.1n).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4491
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4492
Decorations
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4493
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4494
Description
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
_
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4497
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4498
\f[CB]time\f[R] or \f[CB]t\f[R]
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
Current time and date in ISO\-8601 format.
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]utctime\f[R] or \f[CB]utc\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
Universal Time Coordinated or Coordinated Universal Time.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4506
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4507
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4508
\f[CB]uptime\f[R] or \f[CB]u\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4509
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4510
Time since the start of the JVM in seconds and milliseconds.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4511
For example, 6.567s.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4512
T}
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  4513
T{
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4514
\f[CB]timemillis\f[R] or \f[CB]tm\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4515
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4516
The same value as generated by \f[CB]System.currentTimeMillis()\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4517
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4518
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4519
\f[CB]uptimemillis\f[R] or \f[CB]um\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
Milliseconds since the JVM started.
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]timenanos\f[R] or \f[CB]tn\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
The same value generated by \f[CB]System.nanoTime()\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4527
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4528
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4529
\f[CB]uptimenanos\f[R] or \f[CB]un\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4530
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4531
Nanoseconds since the JVM started.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4532
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4533
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4534
\f[CB]hostname\f[R] or \f[CB]hn\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4535
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4536
The host name.
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
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4539
\f[CB]pid\f[R] or \f[CB]p\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4540
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4541
The process identifier.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4542
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4543
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4544
\f[CB]tid\f[R] or \f[CB]ti\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4545
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4546
The thread identifier.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4547
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4548
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4549
\f[CB]level\f[R] or \f[CB]l\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4550
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4551
The level associated with the log message.
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
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4554
\f[CB]tags\f[R] or \f[CB]tg\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4555
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4556
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
  4557
T}
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  4558
.TE
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4559
.SS Convert GC Logging Flags to Xlog
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4560
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4561
.TS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4562
tab(@);
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4563
lw(22.4n) lw(16.5n) lw(31.2n).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4564
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4565
Legacy Garbage Collection (GC) Flag
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4566
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4567
Xlog Configuration
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4568
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4569
Comment
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4570
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4571
_
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4572
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4573
\f[CB]G1PrintHeapRegions\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4574
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4575
\f[CB]\-Xlog:gc+region=trace\f[R]
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
Not Applicable
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4578
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4579
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4580
\f[CB]GCLogFileSize\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4581
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4582
No configuration available
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4583
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4584
Log rotation is handled by the framework.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4585
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4586
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4587
\f[CB]NumberOfGCLogFiles\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4588
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4589
Not Applicable
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4590
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4591
Log rotation is handled by the framework.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4592
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4593
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4594
\f[CB]PrintAdaptiveSizePolicy\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4595
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4596
\f[CB]\-Xlog:gc+ergo*=\f[R]\f[I]level\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4597
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4598
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
  4599
\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
  4600
\f[CB]PrintAdaptiveSizePolicy\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4601
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4602
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4603
\f[CB]PrintGC\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4604
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4605
\f[CB]\-Xlog:gc\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4606
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4607
Not Applicable
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4608
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4609
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4610
\f[CB]PrintGCApplicationConcurrentTime\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4611
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4612
\f[CB]\-Xlog:safepoint\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4613
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4614
Note that \f[CB]PrintGCApplicationConcurrentTime\f[R] and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4615
\f[CB]PrintGCApplicationStoppedTime\f[R] are logged on the same tag and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4616
aren\[aq]t separated in the new logging.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4617
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4618
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4619
\f[CB]PrintGCApplicationStoppedTime\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
\f[CB]\-Xlog:safepoint\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4622
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4623
Note that \f[CB]PrintGCApplicationConcurrentTime\f[R] and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4624
\f[CB]PrintGCApplicationStoppedTime\f[R] are logged on the same tag and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4625
not separated in the new logging.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4626
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4627
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4628
\f[CB]PrintGCCause\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4629
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4630
Not Applicable
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4631
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4632
GC cause is now always logged.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4633
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4634
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4635
\f[CB]PrintGCDateStamps\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4636
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4637
Not Applicable
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4638
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4639
Date stamps are logged by the framework.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4640
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4641
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4642
\f[CB]PrintGCDetails\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4643
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4644
\f[CB]\-Xlog:gc*\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4645
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4646
Not Applicable
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4647
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4648
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4649
\f[CB]PrintGCID\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4650
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4651
Not Applicable
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4652
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4653
GC ID is now always logged.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4654
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4655
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4656
\f[CB]PrintGCTaskTimeStamps\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4657
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4658
\f[CB]\-Xlog:gc+task*=debug\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4659
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4660
Not Applicable
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4661
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4662
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4663
\f[CB]PrintGCTimeStamps\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4664
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4665
Not Applicable
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4666
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4667
Time stamps are logged by the framework.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4668
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4669
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4670
\f[CB]PrintHeapAtGC\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4671
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4672
\f[CB]\-Xlog:gc+heap=trace\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4673
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4674
Not Applicable
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4675
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4676
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4677
\f[CB]PrintReferenceGC\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4678
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4679
\f[CB]\-Xlog:gc+ref*=debug\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4680
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4681
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
  4682
only if \f[CB]PrintGCDetails\f[R] was also enabled.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4683
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4684
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4685
\f[CB]PrintStringDeduplicationStatistics\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4686
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4687
`\-Xlog:gc+stringdedup*=debug
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4688
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4689
` Not Applicable
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4690
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4691
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4692
\f[CB]PrintTenuringDistribution\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4693
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4694
\f[CB]\-Xlog:gc+age*=\f[R]\f[I]level\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4695
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4696
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
  4697
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
  4698
logged for \f[CB]PrintTenuringDistribution\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4699
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4700
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4701
\f[CB]UseGCLogFileRotation\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4702
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4703
Not Applicable
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4704
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4705
What was logged for \f[CB]PrintTenuringDistribution\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4706
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4707
.TE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4708
.SS Convert Runtime Logging Flags to Xlog
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4709
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4710
.TS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4711
tab(@);
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4712
lw(15.0n) lw(20.2n) lw(34.7n).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4713
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4714
Legacy Runtime Flag
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4715
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4716
Xlog Configuration
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4717
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4718
Comment
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4719
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4720
_
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4721
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4722
\f[CB]TraceExceptions\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4723
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4724
\f[CB]\-Xlog:exceptions=info\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4725
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4726
Not Applicable
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4727
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4728
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4729
\f[CB]TraceClassLoading\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4730
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4731
\f[CB]\-Xlog:class+load=\f[R]\f[I]level\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4732
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4733
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
  4734
\f[I]level\f[R]=\f[CB]debug\f[R] for additional information.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4735
In Unified Logging syntax, \f[CB]\-verbose:class\f[R] equals
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4736
\f[CB]\-Xlog:class+load=info,class+unload=info\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4737
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4738
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4739
\f[CB]TraceClassLoadingPreorder\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4740
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4741
\f[CB]\-Xlog:class+preorder=debug\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4742
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4743
Not Applicable
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4744
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4745
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4746
\f[CB]TraceClassUnloading\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4747
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4748
\f[CB]\-Xlog:class+unload=\f[R]\f[I]level\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4749
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4750
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
  4751
\f[I]level\f[R]=\f[CB]trace\f[R] for additional information.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4752
In Unified Logging syntax, \f[CB]\-verbose:class\f[R] equals
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4753
\f[CB]\-Xlog:class+load=info,class+unload=info\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4754
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4755
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4756
\f[CB]VerboseVerification\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4757
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4758
\f[CB]\-Xlog:verification=info\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4759
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4760
Not Applicable
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4761
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4762
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4763
\f[CB]TraceClassPaths\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4764
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4765
\f[CB]\-Xlog:class+path=info\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4766
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4767
Not Applicable
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4768
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4769
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4770
\f[CB]TraceClassResolution\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4771
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4772
\f[CB]\-Xlog:class+resolve=debug\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4773
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4774
Not Applicable
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4775
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4776
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4777
\f[CB]TraceClassInitialization\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4778
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4779
\f[CB]\-Xlog:class+init=info\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4780
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4781
Not Applicable
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4782
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4783
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4784
\f[CB]TraceLoaderConstraints\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4785
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4786
\f[CB]\-Xlog:class+loader+constraints=info\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4787
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4788
Not Applicable
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4789
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4790
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4791
\f[CB]TraceClassLoaderData\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4792
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4793
\f[CB]\-Xlog:class+loader+data=\f[R]\f[I]level\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4794
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4795
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
  4796
\f[I]level\f[R]=\f[CB]trace\f[R] for additional information.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4797
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4798
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4799
\f[CB]TraceSafepointCleanupTime\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4800
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4801
\f[CB]\-Xlog:safepoint+cleanup=info\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4802
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4803
Not Applicable
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4804
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4805
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4806
\f[CB]TraceSafepoint\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4807
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4808
\f[CB]\-Xlog:safepoint=debug\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4809
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4810
Not Applicable
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4811
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4812
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4813
\f[CB]TraceMonitorInflation\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4814
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4815
\f[CB]\-Xlog:monitorinflation=debug\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4816
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4817
Not Applicable
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4818
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4819
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4820
\f[CB]TraceBiasedLocking\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4821
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4822
\f[CB]\-Xlog:biasedlocking=\f[R]\f[I]level\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4823
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4824
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
  4825
\f[I]level\f[R]=\f[CB]trace\f[R] for additional information.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4826
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4827
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4828
\f[CB]TraceRedefineClasses\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4829
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4830
\f[CB]\-Xlog:redefine+class*=\f[R]\f[I]level\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4831
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4832
\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
  4833
increasing amounts of information.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4834
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4835
.TE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4836
.SS \-Xlog Usage Examples
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4837
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4838
The following are \f[CB]\-Xlog\f[R] examples.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4839
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4840
.B \f[CB]\-Xlog\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4841
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
  4842
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
  4843
This is equivalent to using:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4844
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4845
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4846
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4847
\f[CB]\-Xlog:all=info:stdout:uptime,levels,tags\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4848
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4849
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4850
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4851
.B \f[CB]\-Xlog:gc\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4852
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
  4853
to \f[CB]stdout\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4854
The default configuration for all other messages at level
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4855
\f[CB]warning\f[R] is in effect.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4856
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4857
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4858
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4859
.B \f[CB]\-Xlog:gc,safepoint\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4860
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
  4861
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
  4862
default decorations.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4863
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
  4864
be logged.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4865
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4866
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4867
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4868
.B \f[CB]\-Xlog:gc+ref=debug\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4869
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
  4870
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
  4871
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
  4872
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4873
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4874
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4875
.B \f[CB]\-Xlog:gc=debug:file=gc.txt:none\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4876
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
  4877
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
  4878
The default configuration for all other messages at level
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4879
\f[CB]warning\f[R] is still in effect.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4880
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4881
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4882
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4883
.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
  4884
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
  4885
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
  4886
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
  4887
\f[CB]pid\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4888
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4889
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4890
The default configuration for all other messages at level
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4891
\f[CB]warning\f[R] is still in effect.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4892
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4893
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4894
.B \f[CB]\-Xlog:gc::uptime,tid\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4895
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
  4896
\[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
  4897
decorations \f[CB]uptime\f[R] and \f[CB]tid\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4898
The default configuration for all other messages at level
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4899
\f[CB]warning\f[R] is still in effect.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4900
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4901
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4902
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4903
.B \f[CB]\-Xlog:gc*=info,safepoint*=off\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4904
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
  4905
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
  4906
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
  4907
be logged.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4908
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4909
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4910
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4911
.B \f[CB]\-Xlog:disable\ \-Xlog:safepoint=trace:safepointtrace.txt\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4912
Turns off all logging, including warnings and errors, and then enables
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4913
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
  4914
file \f[CB]safepointtrace.txt\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4915
The default configuration doesn\[aq]t apply, because the command line
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4916
started with \f[CB]\-Xlog:disable\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4917
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4918
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4919
.SS Complex \-Xlog Usage Examples
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4920
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4921
The following describes a few complex examples of using the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4922
\f[CB]\-Xlog\f[R] option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4923
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4924
.B \f[CB]\-Xlog:gc+class*=debug\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4925
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
  4926
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
  4927
The default configuration for all other messages at the level
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4928
\f[CB]warning\f[R] is still in effect
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4929
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4930
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4931
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4932
.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
  4933
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
  4934
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
  4935
but turns off all messages tagged with \f[CB]class\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4936
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
  4937
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
  4938
The default configuration for all other messages at level
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4939
\f[CB]warning\f[R] is in effect except for those that include
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4940
\f[CB]class\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4941
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4942
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4943
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4944
.B \f[CB]\-Xlog:gc+meta=trace\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4945
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
  4946
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
  4947
The default configuration for all other messages at level
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4948
\f[CB]warning\f[R] is still be in effect.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4949
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4950
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4951
.TP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4952
.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
  4953
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
  4954
\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
  4955
only log messages tagged with \f[CB]meta\f[R] with level.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4956
The default configuration for all other messages at the level
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4957
\f[CB]warning\f[R] is in effect except for those that include
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4958
\f[CB]threads\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4959
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4960
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4961
.SH VALIDATE JAVA VIRTUAL MACHINE FLAG ARGUMENTS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4962
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4963
You use values provided to all Java Virtual Machine (JVM) command\-line
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4964
flags for validation and, if the input value is invalid or
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4965
out\-of\-range, then an appropriate error message is displayed.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4966
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4967
Whether they\[aq]re set ergonomically, in a command line, by an input
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4968
tool, or through the APIs (for example, classes contained in the package
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4969
\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
  4970
Machine (JVM) command\-line flags are validated.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4971
Ergonomics are described in Java Platform, Standard Edition HotSpot
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4972
Virtual Machine Garbage Collection Tuning Guide.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4973
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4974
Range and constraints are validated either when all flags have their
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4975
values set during JVM initialization or a flag\[aq]s value is changed
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4976
during runtime (for example using the \f[CB]jcmd\f[R] tool).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4977
The JVM is terminated if a value violates either the range or constraint
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4978
check and an appropriate error message is printed on the error stream.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4979
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4980
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
  4981
JVM exits with an error:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4982
.IP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4983
.nf
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4984
\f[CB]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4985
java\ \-XX:AllocatePrefetchStyle=5\ \-version\ \ \ 
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4986
intx\ AllocatePrefetchStyle=5\ is\ outside\ the\ allowed\ range\ [\ 0\ ...\ 3\ ]\ \ \ 
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4987
Improperly\ specified\ VM\ option\ \[aq]AllocatePrefetchStyle=5\[aq]\ \ \ 
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4988
Error:\ Could\ not\ create\ the\ Java\ Virtual\ Machine.\ \ 
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4989
Error:\ A\ fatal\ exception\ has\ occurred.\ Program\ will\ exit.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4990
\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4991
.fi
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4992
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4993
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
  4994
flags.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4995
This flag allows automatic testing of the flags by the values provided
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4996
by the ranges.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4997
For the flags that have the ranges specified, the type, name, and the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  4998
actual range is printed in the output.
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
For example,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5001
.IP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5002
.nf
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5003
\f[CB]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5004
intx\ \ \ ThreadStackSize\ [\ 0\ ...\ 9007199254740987\ ]\ {pd\ product}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5005
\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5006
.fi
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
For the flags that don\[aq]t have the range specified, the values
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5009
aren\[aq]t displayed in the print out.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5010
For example:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5011
.IP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5012
.nf
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5013
\f[CB]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5014
size_t\ NewSize\ \ \ \ \ \ \ \ \ [\ \ \ ...\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ]\ {product}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5015
\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5016
.fi
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5017
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5018
This helps to identify the flags that need to be implemented.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5019
The automatic testing framework can skip those flags that don\[aq]t have
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5020
values and aren\[aq]t implemented.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5021
.SH LARGE PAGES
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5022
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5023
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
  5024
significantly larger than the standard memory page size (which varies
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5025
depending on the processor and operating system).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5026
Large pages optimize processor Translation\-Lookaside Buffers.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5027
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5028
A Translation\-Lookaside Buffer (TLB) is a page translation cache that
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5029
holds the most\-recently used virtual\-to\-physical address
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5030
translations.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5031
A TLB is a scarce system resource.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5032
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
  5033
hierarchical page table, which may require multiple memory accesses.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5034
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
  5035
larger memory range.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5036
This results in less pressure on a TLB, and memory\-intensive
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5037
applications may have better performance.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5038
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5039
However, large pages page memory can negatively affect system
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5040
performance.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5041
For example, when a large mount of memory is pinned by an application,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5042
it may create a shortage of regular memory and cause excessive paging in
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5043
other applications and slow down the entire system.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5044
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
  5045
fragmentation, which could make it impossible to reserve enough large
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5046
page memory.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5047
When this happens, either the OS or JVM reverts to using regular pages.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5048
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5049
Oracle Solaris, Linux, and Windows support large pages.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5050
.SS Large Pages Support for Oracle Solaris
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5051
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5052
Oracle Solaris includes Multiple Page Size Support (MPSS).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5053
No additional configuration is necessary.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5054
.SS Large Pages Support for Linux
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5055
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5056
The 2.6 kernel supports large pages.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5057
Some vendors have backported the code to their 2.4\-based releases.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5058
To check if your system can support large page memory, try the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5059
following:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5060
.IP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5061
.nf
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5062
\f[CB]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5063
#\ cat\ /proc/meminfo\ |\ grep\ Huge
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5064
HugePages_Total:\ 0
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5065
HugePages_Free:\ 0
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5066
Hugepagesize:\ 2048\ kB
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5067
\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5068
.fi
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5069
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5070
If the output shows the three "Huge" variables, then your system can
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5071
support large page memory but it needs to be configured.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5072
If the command prints nothing, then your system doesn\[aq]t support
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5073
large pages.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5074
To configure the system to use large page memory, login as
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5075
\f[CB]root\f[R], and then follow these steps:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5076
.IP "1." 3
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5077
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
  5078
\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
  5079
It must be larger than the Java heap size.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5080
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
  5081
the memory sharable:
31876
91b22707521a 8131105: Header Template for nroff man pages *.1 files contains errors
mfang
parents: 21743
diff changeset
  5082
.RS 4
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5083
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5084
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5085
\f[CB]#\ echo\ 4294967295\ >\ /proc/sys/kernel/shmmax\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5086
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5087
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5088
.IP "2." 3
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5089
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
  5090
\f[CB]\-XX:+UseHugeTLBFS\f[R], then specify the number of large pages.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5091
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
  5092
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
  5093
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
  5094
.RS 4
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5095
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5096
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5097
\f[CB]#\ echo\ 1536\ >\ /proc/sys/vm/nr_hugepages\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5098
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5099
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5100
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5101
\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
  5102
reboot your system, so may want to set them in an initialization script
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5103
(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
  5104
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5105
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5106
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5107
If you configure (or resize) the OS kernel parameters
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5108
\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
  5109
Java processes may allocate large pages for areas in addition to the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5110
Java heap.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5111
These steps can allocate large pages for the following areas:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5112
.RS 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5113
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5114
Java heap
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5115
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5116
Code cache
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5117
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5118
The marking bitmap data structure for the parallel GC
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5119
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5120
Consequently, if you configure the \f[CB]nr_hugepages\f[R] parameter to
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5121
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
  5122
cache areas on large pages because these areas are quite large in size.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5123
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5124
.SS Large Pages Support for Windows
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5125
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5126
To use large pages support on Windows, the administrator must first
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5127
assign additional privileges to the user who is running the application:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5128
.IP "1." 3
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5129
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
  5130
\f[B]Local Security Policy\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5131
.IP "2." 3
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5132
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
  5133
.IP "3." 3
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5134
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
  5135
groups.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5136
.IP "4." 3
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5137
Reboot your system.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5138
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5139
Note that these steps are required even if it\[aq]s the administrator
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5140
who\[aq]s running the application, because administrators by default
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5141
don\[aq]t have the privilege to lock pages in memory.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5142
.SH APPLICATION CLASS DATA SHARING
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5143
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5144
Application Class Data Sharing (AppCDS) extends class data sharing (CDS)
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5145
to enable application classes to be placed in a shared archive.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5146
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5147
In addition to the core library classes, AppCDS supports \f[B]Class Data
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5148
Sharing\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5149
[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
  5150
from the following locations:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5151
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5152
Platform classes from the runtime image
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5153
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5154
Application classes from the runtime image
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5155
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5156
Application classes from the class path
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5157
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5158
Application classes from the module path
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5159
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5160
Archiving application classes provides better start up time at runtime.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5161
When running multiple JVM processes, AppCDS also reduces the runtime
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5162
footprint with memory sharing for read\-only metadata.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5163
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5164
CDS/AppCDS supports archiving classes from JAR files only.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5165
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5166
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
  5167
the following conditions:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5168
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5169
For base CDS, a non\-empty directory cannot exist in the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5170
\f[CB]\-Xbootclasspath/a\f[R] path
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5171
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5172
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
  5173
the \f[CB]\-Xbootclasspath/a\f[R] path, class path, and module path.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5174
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5175
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
  5176
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
  5177
classlist.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5178
A non\-empty directory is reported as a fatal error in the following
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5179
conditions:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5180
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5181
If application classes or platform classes are not loaded, dump time
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5182
only reports an error if a non\-empty directory exists in
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5183
\f[CB]\-Xbootclasspath/a\f[R] path
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5184
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5185
If application classes or platform classes are loaded, dump time reports
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5186
an error for a non\-empty directory that exists in
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5187
\f[CB]\-Xbootclasspath/a\f[R] path, class path, or module path
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5188
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5189
In JDK 11 and later, using
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5190
\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
  5191
generated classlist with all classes (both system library classes and
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5192
application classes) included.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5193
You no longer have to specify \f[CB]\-XX:+UseAppCDS\f[R] with
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5194
\f[CB]\-XX:DumpLoadedClassList\f[R] to produce a complete class list.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5195
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5196
In JDK 11 and later, because \f[CB]UseAppCDS\f[R] is obsolete,
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5197
\f[CB]SharedArchiveFile\f[R] becomes a product flag by default.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5198
Specifying \f[CB]+UnlockDiagnosticVMOptions\f[R] for
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5199
\f[CB]SharedArchiveFile\f[R] is no longer needed in any configuration.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5200
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5201
Class Data Sharing (CDS)/AppCDS does not support archiving array classes
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5202
in a class list.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5203
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
  5204
explicit error message:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5205
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5206
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5207
\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
  5208
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5209
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5210
Although an array in the class list is not allowed, some array classes
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5211
can still be created at CDS/AppCDS dump time.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5212
Those arrays are created during the execution of the Java code used by
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5213
the Java class loaders (\f[CB]PlatformClassLoader\f[R] and the system
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5214
class loader) to load classes at dump time.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5215
The created arrays are archived with the rest of the loaded classes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5216
.SS Extending Class Data Sharing to Support the Module Path
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5217
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5218
In JDK 11, Class Data Sharing (CDS) has been improved to support
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5219
archiving classes from the module path.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5220
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5221
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
  5222
use the following command line syntax:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5223
.RS 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5224
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5225
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5226
\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
  5227
\f[CB]\-XX:SharedArchiveFile=\f[R]\f[I]shared_archive_file\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5228
\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
  5229
\f[I]module_name\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5230
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5231
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5232
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5233
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
  5234
use the following the command line syntax:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5235
.RS 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5236
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5237
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5238
\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
  5239
\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
  5240
\f[I]module_name\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5241
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5242
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5243
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5244
The following table describes how the VM options related to module paths
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5245
can be used along with the \f[CB]\-Xshare\f[R] option.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5246
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5247
.TS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5248
tab(@);
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5249
l l l.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5250
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5251
Option
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5252
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5253
\-Xshare:dump
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5254
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5255
\-Xshare:{on,auto}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5256
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5257
_
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5258
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5259
\f[CB]\-\-module\-path\f[R][1] \f[I]mp\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5260
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5261
Allowed
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5262
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5263
Allowed[2]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5264
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5265
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5266
\f[CB]\-\-module\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5267
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5268
Allowed
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5269
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5270
Allowed
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5271
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5272
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5273
\f[CB]\-\-add\-module\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5274
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5275
Allowed
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5276
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5277
Allowed
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5278
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5279
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5280
\f[CB]\-\-upgrade\-module\-path\f[R][3]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5281
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5282
Disallowed (exits if specified)
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5283
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5284
Allowed (disables CDS)
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5285
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5286
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5287
\f[CB]\-\-patch\-module\f[R][4]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5288
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5289
Disallowed (exits if specified)
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5290
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5291
Allowed (disables CDS)
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5292
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5293
T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5294
\f[CB]\-\-limit\-modules\f[R][5]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5295
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5296
Disallowed (exits if specified)
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5297
T}@T{
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5298
Allowed (disables CDS)
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5299
T}
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5300
.TE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5301
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5302
[1] Although there are two ways of specifying a module in a
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5303
\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
  5304
modular JARs are supported.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5305
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5306
[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
  5307
time.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5308
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
  5309
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
  5310
\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
  5311
disregarded at run time; K will be loaded dynamically.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5312
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5313
[3] Currently, only two system modules are upgradeable
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5314
(\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
  5315
However, these modules are seldom upgraded in production software.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5316
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5317
[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
  5318
strongly discouraged for production use.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5319
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5320
[5] \f[CB]\-\-limit\-modules\f[R] is intended for testing purposes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5321
It is seldom used in production software.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5322
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5323
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
  5324
\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
  5325
printed and the JVM will exit.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5326
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
  5327
dump time, the user will see the following error:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5328
.IP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5329
.nf
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5330
\f[CB]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5331
Error\ occurred\ during\ initialization\ of\ VM
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5332
Cannot\ use\ the\ following\ option\ when\ dumping\ the\ shared\ archive:\ \-\-limit\-modules
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5333
\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5334
.fi
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
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
  5337
\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
  5338
will be printed indicating that CDS is disabled.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5339
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
  5340
run time, the user will see the following warning:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5341
.IP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5342
.nf
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5343
\f[CB]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5344
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
  5345
\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5346
.fi
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5347
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5348
Several other noteworthy things include:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5349
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5350
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
  5351
are supported.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5352
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5353
A non\-empty directory in the module path causes a fatal error.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5354
The user will see the following error messages:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5355
.RS 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5356
.IP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5357
.nf
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5358
\f[CB]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5359
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
  5360
\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5361
.fi
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 \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5364
Unlike the class path, there\[aq]s no restriction that the module path
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5365
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
  5366
time.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5367
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5368
The archive is invalidated if an existing JAR in the module path is
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5369
updated after archive generation.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5370
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5371
Removing a JAR from the module path does not invalidate the shared
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5372
archive.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5373
Archived classes from the removed JAR are not used at runtime.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5374
.SS Dynamic CDS archive
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5375
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5376
Dynamic CDS archive extends AppCDS to allow archiving of classes when a
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5377
Java application exits.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5378
It improves the usability of AppCDS by eliminating the trial run step
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5379
for creating a class list for each application.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5380
The archived classes include all loaded application classes and library
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5381
classes that are not present in the default CDS archive which is
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5382
included in the JDK.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5383
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5384
A base archive is required when creating a dynamic archive.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5385
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
  5386
the base archive.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5387
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5388
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
  5389
archive, just add the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5390
\f[CB]\-XX:ArchiveClassesAtExit=<dynamic\ archive>\f[R] option to the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5391
command line for running the Java application.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5392
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5393
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
  5394
following error:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5395
.IP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5396
.nf
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5397
\f[CB]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5398
ArchiveClassesAtExit\ not\ supported\ when\ base\ CDS\ archive\ is\ not\ loaded
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5399
\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5400
.fi
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5401
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5402
To run the Java application using a dynamic CDS archive, just add the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5403
\f[CB]\-XX:SharedArchiveFile=<dynamic\ archive>\f[R] option to the command
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5404
line for running the Java application.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5405
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5406
The base archive is not required to be specified in the command line.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5407
The base archive information, including its name and full path, will be
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5408
retrieved from the dynamic archive header.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5409
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
  5410
option for specifying a regular AppCDS archive.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5411
Therefore, the specified archive in the \f[CB]\-XX:SharedArchiveFile\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5412
option could be either a regular or dynamic archive.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5413
During VM start up the specified archive header will be read.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5414
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
  5415
behavior will be unchanged.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5416
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
  5417
will retrieve the base archive location from the dynamic archive.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5418
If the dynamic archive was created with the default CDS archive, then
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5419
the current default CDS archive will be used, and will be found relative
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5420
to the current run time environment.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5421
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5422
Please refer to \f[B]JDK\-8221706\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5423
[https://bugs.openjdk.java.net/browse/JDK\-8221706] for details on error
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5424
checking during dynamic CDS archive dump time and run time.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5425
.SS Creating a Shared Archive File and Using It to Run an Application
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5426
.SS AppCDS archive
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5427
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5428
The following steps create a shared archive file that contains all the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5429
classes used by the \f[CB]test.Hello\f[R] application.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5430
The last step runs the application with the shared archive file.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5431
.IP "1." 3
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5432
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
  5433
application.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5434
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
  5435
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
  5436
.RS 4
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5437
.RS
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
\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
  5440
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5441
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5442
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
  5443
contain only JAR files.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5444
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5445
.IP "2." 3
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5446
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
  5447
classes in \f[CB]hello.classlist\f[R]:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5448
.RS 4
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5449
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5450
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5451
\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
  5452
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5453
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5454
Note that the classpath used at archive creation time must be the same
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5455
as (or a prefix of) the classpath used at run time.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5456
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5457
.IP "3." 3
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5458
Run the application \f[CB]test.Hello\f[R] with the shared archive
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5459
\f[CB]hello.jsa\f[R]:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5460
.RS 4
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5461
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5462
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5463
\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
  5464
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5465
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5466
.IP "4." 3
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5467
\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
  5468
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
  5469
.RS 4
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5470
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5471
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5472
\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
  5473
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5474
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5475
The output of this command should contain the following text:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5476
.IP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5477
.nf
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5478
\f[CB]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5479
Loaded\ test.Hello\ from\ shared\ objects\ file\ by\ sun/misc/Launcher$AppClassLoader
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5480
\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5481
.fi
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5482
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5483
.SS Dynamic CDS archive
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5484
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5485
The following steps create a dynamic CDS archive file that contains the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5486
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
  5487
in the default CDS archive.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5488
The second step runs the application with the dynamic CDS archive.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5489
.IP "1." 3
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5490
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
  5491
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
  5492
\f[CB]test.Hello\f[R]:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5493
.RS 4
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5494
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5495
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5496
\f[CB]java\ \-XX:ArchiveClassesAtExit=hello.jsa\ \-cp\ hello.jar\ Hello\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5497
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5498
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5499
Note that the classpath used at archive creation time must be the same
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5500
as (or a prefix of) the classpath used at run time.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5501
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5502
.IP "2." 3
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5503
Run the application \f[CB]test.Hello\f[R] with the shared archive
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5504
\f[CB]hello.jsa\f[R]:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5505
.RS 4
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5506
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5507
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5508
\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
  5509
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5510
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5511
.IP "3." 3
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5512
\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
  5513
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
  5514
\f[CB]hello.jsa\f[R] shared archive.
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
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
  5517
following:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5518
.IP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5519
.nf
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5520
\f[CB]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5521
\ \ \ \ ARCHIVE=hello.jsa
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5522
\ \ \ \ if\ test\ \-f\ $ARCHIVE;\ then
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5523
\ \ \ \ \ \ \ \ FLAG="\-XX:SharedArchiveFile=$ARCHIVE"
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5524
\ \ \ \ else
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5525
\ \ \ \ \ \ \ \ FLAG="\-XX:ArchiveClassesAtExit=$ARCHIVE"
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5526
\ \ \ \ fi
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5527
\ \ \ \ $JAVA_HOME/bin/java\ \-cp\ hello.jar\ $FLAG\ test.Hello
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5528
\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5529
.fi
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5530
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5531
Like an AppCDS archive, the archive needs to be re\-generated if the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5532
Java version has changed.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5533
The above script could be adjusted to account for the Java version as
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5534
follows:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5535
.IP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5536
.nf
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5537
\f[CB]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5538
\ \ \ \ ARCHIVE=hello.jsa
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5539
\ \ \ \ VERSION=foo.version
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5540
\ \ \ \ 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
  5541
\ \ \ \ \ \ \ \ FLAG="\-XX:SharedArchiveFile=$ARCHIVE"
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5542
\ \ \ \ else
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5543
\ \ \ \ \ \ \ \ FLAG="\-XX:ArchiveClassesAtExit=$ARCHIVE"
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5544
\ \ \ \ \ \ \ \ cp\ \-f\ $JAVA_HOME/release\ $VERSION
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5545
\ \ \ \ fi
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5546
\ \ \ \ $JAVA_HOME/bin/java\ \-cp\ hello.jar\ $FLAG\ test.Hello
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5547
\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5548
.fi
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5549
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5550
Currently, we don\[aq]t support concurrent dumping operations to the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5551
same CDS archive.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5552
Care should be taken to avoid multiple writers to the same CDS archive.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5553
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5554
The user could also create a dynamic CDS archive with a specific base
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5555
archive, e.g.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5556
named as \f[CB]base.jsa\f[R] as follows:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5557
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5558
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5559
\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
  5560
.RE
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
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
  5563
and a specific base CDS archive \f[CB]base.jsa\f[R]:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5564
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5565
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5566
\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
  5567
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5568
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5569
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
  5570
replaced with \f[CB];\f[R].
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
The above command for specifying a base archive is useful if the base
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5573
archive used for creating the dynamic archive has been moved.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5574
Normally, just specifying the dynamic archive should be sufficient since
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5575
the base archive info can be retrieved from the dynamic archive header.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5576
.SS Sharing a Shared Archive Across Multiple Application Processes
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5577
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5578
You can share the same archive file across multiple applications
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5579
processes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5580
This reduces memory usage because the archive is memory\-mapped into the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5581
address space of the processes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5582
The operating system automatically shares the read\-only pages across
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5583
these processes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5584
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5585
The following steps demonstrate how to create a common archive that can
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5586
be shared by different applications.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5587
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
  5588
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
  5589
classpath during the archiving step (step 3).
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5590
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5591
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
  5592
\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
  5593
\f[CB]\-cp\f[R] parameter.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5594
.IP "1." 3
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5595
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
  5596
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
  5597
.RS 4
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5598
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5599
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5600
\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
  5601
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5602
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5603
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5604
\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
  5605
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5606
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5607
.IP "2." 3
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5608
Create a single list of classes used by all the applications that will
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5609
share the shared archive file.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5610
.RS 4
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5611
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5612
\f[B]Oracle Solaris, Linux, and macOS\f[R] The following commands combine
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5613
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
  5614
file, \f[CB]common.classlist\f[R]:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5615
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5616
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5617
\f[CB]cat\ hello.classlist\ hi.classlist\ >\ common.classlist\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5618
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5619
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5620
\f[B]Windows\f[R] The following commands combine the files
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5621
\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
  5622
\f[CB]common.classlist\f[R]:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5623
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5624
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5625
\f[CB]type\ hello.classlist\ hi.classlist\ >\ common.classlist\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5626
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5627
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5628
.IP "3." 3
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5629
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
  5630
classes in \f[CB]common.classlist\f[R]:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5631
.RS 4
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5632
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5633
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5634
\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
  5635
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5636
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5637
The classpath parameter used is the common class path prefix shared by
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5638
the \f[CB]Hello\f[R] and \f[CB]Hi\f[R] applications.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5639
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5640
.IP "4." 3
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5641
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
  5642
archive:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5643
.RS 4
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5644
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5645
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5646
\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
  5647
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5648
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5649
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5650
\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
  5651
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5652
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5653
.SS Specifying Additional Shared Data Added to an Archive File
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5654
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5655
The \f[CB]SharedArchiveConfigFile\f[R] option is used to specify
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5656
additional shared data to add to the archive file.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5657
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5658
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5659
\f[CB]\-XX:SharedArchiveConfigFile=\f[R]\f[I]shared_config_file\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5660
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5661
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5662
JDK 9 and later supports adding both symbols and\ string objects to an
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5663
archive for memory sharing\ when you have multiple JVM processes running
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5664
on the same host.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5665
An example of this is having multiple JVM processes that use the same
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5666
set of Java EE classes.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5667
When these common classes are loaded and used, new symbols and strings
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5668
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
  5669
tables.\ At runtime, the symbols or string objects mapped from the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5670
archive file can be shared across multiple JVM processes, resulting in a
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5671
reduction of overall memory usage.\ In addition, archiving strings also
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5672
provides added performance benefits in both startup time and runtime
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5673
execution.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5674
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5675
In JDK 10 and later, CONSTANT_String entries in archived classes are
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5676
resolved to interned String objects at dump time, and all interned
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5677
String objects are archived.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5678
However, even though all CONSTANT_String literals in all archived
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5679
classes are resolved, it might still beneficial to add additional
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5680
strings that are not string literals in class files, but are likely to
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5681
be used by your application at run time.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5682
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5683
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
  5684
running JVM process.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5685
See \f[B]jcmd\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5686
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5687
The following is an example of the symbol dumping command in
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5688
\f[CB]jcmd\f[R]:\ 
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5689
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5690
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5691
\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
  5692
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5693
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5694
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5695
\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
  5696
(\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
  5697
excluded from the configuration file.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5698
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5699
.SS Example of a Configuration File
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5700
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5701
The following is an example of a configuration file:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5702
.IP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5703
.nf
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5704
\f[CB]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5705
VERSION:\ 1.0
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5706
\@SECTION:\ Symbol
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5707
10\ \-1:\ linkMethod
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5708
\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5709
.fi
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5710
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5711
In the configuration file example, the \f[CB]\@SECTION:\ Symbol\f[R] entry
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5712
uses the following format:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5713
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5714
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5715
\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
  5716
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5717
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5718
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
  5719
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5720
\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
  5721
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
  5722
by \f[CB]\@SECTION\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5723
Different types of data can\[aq]t be mixed.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5724
Multiple separated data sections for the same type specified by
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5725
different \f[CB]\@SECTION\f[R] are allowed within one
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5726
\f[CB]shared_config_file\f[R] .
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5727
.SH PERFORMANCE TUNING EXAMPLES
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5728
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5729
You can use the Java advanced runtime options to optimize the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5730
performance of your applications.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5731
.SS Tuning for Higher Throughput
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5732
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5733
Use the following commands and advanced options to achieve higher
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5734
throughput performance for your application:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5735
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5736
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5737
\f[CB]java\ \-server\ \-XX:+UseParallelGC\ \-XX:+UseLargePages\ \-Xmn10g\ \ \-Xms26g\ \-Xmx26g\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5738
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5739
.SS Tuning for Lower Response Time
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5740
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5741
Use the following commands and advanced options to achieve lower
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5742
response times for your application:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5743
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5744
.PP
55666
340d73f42b3c 8227602: Update nroff version of man pages
jjg
parents: 55140
diff changeset
  5745
\f[CB]java\ \-XX:+UseG1GC\ \-XX:MaxGCPauseMillis=100\f[R]
55140
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5746
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5747
.SS Keeping the Java Heap Small and Reducing the Dynamic Footprint of
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5748
Embedded Applications
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5749
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5750
Use the following advanced runtime options to keep the Java heap small
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5751
and reduce the dynamic footprint of embedded applications:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5752
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5753
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5754
\f[CB]\-XX:MaxHeapFreeRatio=10\ \-XX:MinHeapFreeRatio=5\f[R]
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5755
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5756
.RS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5757
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5758
\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
  5759
respectively.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5760
Because performance sacrifices can occur when using these small
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5761
settings, you should optimize for a small footprint by reducing these
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5762
settings as much as possible without introducing unacceptable
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5763
performance degradation.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5764
.RE
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5765
.SH EXIT STATUS
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5766
.PP
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5767
The following exit values are typically returned by the launcher when
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5768
the launcher is called with the wrong arguments, serious errors, or
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5769
exceptions thrown by the JVM.
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5770
However, a Java application may choose to return any value by using the
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5771
API call \f[CB]System.exit(exitValue)\f[R].
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5772
The values are:
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5773
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5774
\f[CB]0\f[R]: Successful completion
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5775
.IP \[bu] 2
d4890c3721be 8225134: Update man-page files
jjg
parents: 55080
diff changeset
  5776
\f[CB]>0\f[R]: An error occurred