| 选项与默认值 | 默认值与限制 | 描述 |
| -XX:+AggressiveOpts | JDK 5 update 6后引入,但需要手动启用。
JDK6默认启用。 |
启用JVM开发团队最新的调优成果。例如编译优化,偏向锁,并行年老代收集等。 |
| -XX:CompileThreshold=10000 | 1000 | 通过JIT编译器,将方法编译成机器码的触发阀值,可以理解为调用方法的次数,例如调1000次,将方法编译为机器码。 |
| -XX:LargePageSizeInBytes=4m | 默认4m
amd64位:2m |
设置堆内存的内存页大小。
调整内存页的方法和性能提升原理,详见 http://kenwublog.com/tune-large-page-for-jvm-optimization |
| -XX:MaxHeapFreeRatio=70 | 70 | GC后,如果发现空闲堆内存占到整个预估上限值的70%,则收缩预估上限值。
什么是预估上限值? JVM在启动时,会申请最大值(-Xmx指定的数值)的地址空间,但其中绝大部分空间不会被立即分配(virtual)。 它们会一直保留着,直到运行过程中,JVM发现实际占用接近已分配上限值时,才从virtual里再分配掉一部分内存。 这里提到的已分配上限值,也可以叫做预估上限值。 注意:预估上限值的大小一定小于或等于最大值。 |
| -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表示新生代占最大堆内存的1/2。即年老代和新生代平分堆的占用。 |
| -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 的新生代内存,另外因为有2个survivor,
所以survivor总共是占用新生代内存的 2/8,Eden的占比则为 6/8。 |
| -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。 |
| -XX:+UseLargePages | JDK 5 update 5后引入,但需要手动启用。
JDK6默认启用。 |
启用大内存分页。
调整内存页的方法和性能提升原理,详见http://kenwublog.com/tune-large-page-for-jvm-optimization 关联选项 -XX:LargePageSizeInBytes=4m |
| -XX:+UseMPSS | 1.4.1 之前: 不启用
其余版本默认启用 |
启用solaris的MPSS,不能与ISM同时使用。 |
| -XX:+StringCache | 默认启用 | 启用字符串缓存。 |
| -XX:AllocatePrefetchLines=1 | 1 | 与机器码指令预读相关的一个选项,资料比较少,本文档不做解释。有兴趣的朋友请自行阅读官方doc。 |
| -XX:AllocatePrefetchStyle=1 | 1 | 与机器码指令预读相关的一个选项,资料比较少,本文档不做解释。有兴趣的朋友请自行阅读官方doc。 |
| 原文链接 http://kenwublog.com/docs/java6-jvm-options-chinese-edition.htm | ||
Java6 JVM参数性能选项篇
You can follow any responses to this entry through the RSS 2.0 | You can leave a response or trackback from your own site.
Comments