JVM
The term is used to refer to three different notions:
- Specification
- Implementation
- Instance
The specification covers only reading the class
file format and performing operations described within it.
Flags
- Some flags have consistent default values across all platforms and products, but:
- Others differ by platform (indicated by
{pd}
, for platform dependent, inPrintFlagsFinal
output). - Some differ by product (
{product}
). - Others are set automatically by ergonomics based on heuristics.
- Flags' values can be calculated based on others' values, and flags may be enabled as a result of enabling or setting another flag.
- Others differ by platform (indicated by
- Enable the
PrintFlagsFinal
flag to see the final set of flags used by the JVM after applying ergonomics heuristics.- Default values are shown with equals (
=
) signs between their names and values. Non-default values, including those set by ergonomics, are shown with:=
signs.
- Default values are shown with equals (
- Boolean flag values can be set with
-XX:<+|-><flag>
(e.g.-XX:+PrintFlagsFinal
). - Flag values can be set with
-XX:<flag>=<value>
(e.g.-XX:MaxHeapSize=1g
). - Some flags have short-hand variants. For example,
-XX:MaxHeapSize=1g
can also be set with-Xmx1g
.
Container support
Container support allows the JVM to determine the amount of memory and number of processors available to the it automatically. Where supported (64-bit Linux) it will be enabled by default, though it can be disabled with -XX:-UseContainerSupport
.
Note the JVM rounds fractional CPU values up.
-Xlog:os+container=trace
enables logging of container information for debugging.
Children
Backlinks