有关java并发能够看这里:
yuedu.baidu.com/ebook/d09e3…
Java 6(update 21oder 21以后)版本, HotSpot JVM 提供给了两个新的参数,在JVM启动后,在命令行中能够输出全部XX参数和值:javascript
-XX:+PrintFlagsFinal 以及 -XX:+PrintFlagsInitial
html
个人电脑上的Java版本是1.7.0_79,本文所讲述的JVM参数所有都是这个版本有的(不一样版本可能有所不一样):java
bogon:~ xujianxing$ java -version
java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)
bogon:~ xujianxing$复制代码
让咱们如今就了解一下新参数的输出。以 -client 做为参数的 -XX:+PrintFlagsFinal 的结果:git
其输出有多是以下的状况:github
$ java -client -XX:+PrintFlagsFinal
[Global flags]
uintx AdaptivePermSizeWeight = 20 {product}
uintx AdaptiveSizeDecrementScaleFactor = 4 {product}
uintx AdaptiveSizeMajorGCDecayTimeScale = 10 {product}
uintx AdaptiveSizePausePolicy = 0 {product}[...]
uintx YoungGenerationSizeSupplementDecay = 8 {product}
uintx YoungPLABSize = 4096 {product}
bool ZeroTLAB = false {product}
intx hashCode复制代码
是一个按字母排序的669个参数表格。并发
而若是是按照-server的参数输出,依然是669个参数。
client模式追求的是减少启动速度和内存占用,server模式追求最高的执行速度。oracle
每个参数各有五行,下面来每一行的参数有什么意义:
表格的每一行包括五列,来表示一个XX参数。第一列表示参数的数据类型,第二列是名称,第四列为值,第五列是参数的类别。第三列”=”表示第四列是参数的默认值,:=表示这个值被人为地修改过或者JVM经过人体工程学调优过。
uintX X位无符号整形,如uint32表示32位无符号整形 intX X位有符号整形,如int32表示32位有符号整形。第五个表示参数类别,product表示生产模式。diagnostic表示debug模式,能够用来调试JVM。
manageable表示能够经过JMX设置的参数,具体状况能够看这里:Developing Manageable Applications With JMXapp
pd表示平台依赖(Platform Dependent),某些参数可能只有某个操做系统才有。jvm
参考连接:jsp
www.oracle.com/technetwork…
javadiscover.blogspot.hk/2013/10/hot…
pingtimeout.github.io/jvm-options…