当前位置: 首页 > Java > 正文

Java 1.6 JVM参数选项大全(中文版)–性能选项

关键字:
1 星2 星3 星4 星5 星 (2 次投票, 评分: 5.00, 总分: 5)
Loading ... Loading ...
baidu_share

选项与默认值
默认值与限制
描述

-XX:+AggressiveOpts
JDK 5 update 6后引入,但需要手动启用。
JDK6默认启用。
启用JVM开发团队最新的调优成果。例如编译优化,偏向锁,并行年老代收集等。

-XX:CompileThreshold=10000
1000
通过JIT编译器,将方法编译成机器码的触发阀值,可以理解为调用方法的次数,例如调1000次,将方法编译为机器码。
-XX:LargePageSizeInBytes=4m
默认4m
amd64位:2m
设置堆内存的内存页大小。

-XX:MaxHeapFreeRatio=70
70
GC后,如果发现空闲堆内存占到整个预估上限值的70%,则收缩预估上限值。

什么是预估上限值?
JVM在启动时,会申请最大值(-Xmx指定的数值)的地址空间,但其中绝大部分空间不会被立即分配(virtual)。
它们会一直保留着,直到运行过程中,JVM发现实际占用接近已分配上限值时,才从virtual里再分配掉一部分内存。
这里提到的已分配上限值,也可以叫做预估上限值。

引入预估上限值的好处是,可以有效地控制堆的大小。堆越小,GC效率越高嘛。
注意:预估上限值的大小一定小于或等于最大值。

-XX:MaxNewSize=size
1.3.1 Sparc: 32m
1.3.1 x86: 2.5m
新生代占整个堆内存的最大值。

-XX:MaxPermSize=64m
5.0以后: 64 bit VMs会增大预设值的30%
1.4 amd64: 96m
1.3.1 -client: 32m

其他默认 64m
Perm(俗称方法区)占整个堆内存的最大值。

-XX:MinHeapFreeRatio=40
40
GC后,如果发现空闲堆内存占到整个预估上限值的40%,则增大上限值。
(什么是预估上限值?见 -XX:MaxHeapFreeRatio 处的描述)

关联选项:
-XX:MaxHeapFreeRatio=70

-XX:NewRatio=2
Sparc -client: 8
x86 -server: 8
x86 -client: 12
-client: 4 (1.3)
8 (1.3.1+)
x86: 12

其他默认 2
新生代和年老代的堆内存占用比例。
例如2例如2表示新生代占年老代的1/2,占整个堆内存的1/3。

-XX:NewSize=2.125m
5.0以后: 64 bit Vms 会增大预设值的30%
x86: 1m
x86, 5.0以后: 640k

其他默认 2.125m
新生代预估上限的默认值。(什么是预估上限值?见 -XX:MaxHeapFreeRatio 处的描述)

-XX:ReservedCodeCacheSize=32m
Solaris 64-bit, amd64, -server x86: 48m
1.5.0_06之前, Solaris 64-bit amd64: 1024m

其他默认 32m
设置代码缓存的最大值,编译时用。

-XX:SurvivorRatio=8
Solaris amd64: 6
Sparc in 1.3.1: 25
Solaris platforms 5.0以前: 32

其他默认 8
Eden与Survivor的占用比例。例如8表示,一个survivor区占用 1/8 的Eden内存,即1/10的新生代内存,为什么不是1/9?
因为我们的新生代有2个survivor,即S1和S22。所以survivor总共是占用新生代内存的 2/10,Eden与新生代的占比则为 8/10。

-XX:TargetSurvivorRatio=50
50
实际使用的survivor空间大小占比。默认是50%,最高90%。

-XX:ThreadStackSize=512
Sparc: 512
Solaris x86: 320 (5.0以前 256)
Sparc 64 bit: 1024
Linux amd64: 1024 (5.0 以前 0)

其他默认 512.
线程堆栈大小

-XX:+UseBiasedLocking
JDK 5 update 6后引入,但需要手动启用。
JDK6默认启用。
启用偏向锁。

-XX:+UseFastAccessorMethods
默认启用
优化原始类型的getter方法性能。
-XX:-UseISM
默认启用
启用solaris的ISM。

详见Intimate Shared Memory.

-XX:+UseLargePages
JDK 5 update 5后引入,但需要手动启用。
JDK6默认启用。
启用大内存分页。

关联选项
-XX:LargePageSizeInBytes=4m

-XX:+UseMPSS
1.4.1 之前: 不启用
其余版本默认启用
启用solaris的MPSS,不能与ISM同时使用。

-XX:+StringCache
默认启用
启用字符串缓存。

-XX:AllocatePrefetchLines=1
1
与机器码指令预读相关的一个选项,资料比较少,本文档不做解释。有兴趣的朋友请自行阅读官方doc。

-XX:AllocatePrefetchStyle=1
1
与机器码指令预读相关的一个选项,资料比较少,本文档不做解释。有兴趣的朋友请自行阅读官方doc。

本文固定链接: http://www.chepoo.com/java-1-6-jvm-parameter-options-daquan-optimize-option.html | IT技术精华网

Java 1.6 JVM参数选项大全(中文版)–性能选项:等您坐沙发呢!

发表评论