JVM 的选项有 3 种:
- 基本选项,如 -version。
- 非基本选项,即 -X 选项,如 -Xmx,-Xms,-Xmn 等。
- 高级选项,即 -XX 选项。高级选项有两种类型,一种是 boolean 类型的,用 -XX:+ 或 -XX:- 表示,如 -XX:+PrintGCDetails ,另一种是值类型,如 -XX:ParallelGCThreads=2 。
高级选项比较常用重要的有以下几个:
- -XX:InitialHeapSize,初始堆内存大小,等价于 -Xms 。
- -XX:MaxHeapSize,最大堆内存大小,等价于 -Xmx 。
- -XX:NewSize,新生代初始内存,等价于 -Xmn 。
- -XX:MaxNewSize,新生代最大内存。
- -XX:ThreadStackSize,线程栈的内存大小,等价于 -Xss 。
- -XX:SurvivorRatio=ratio,eden 和 survivor 的比例,默认为 8 ,即 eden:s0:s1 = 8:1:1 。
- -XX:NewRatio=ratio,young 和 old 的比例,默认为 2 ,即 young 占 1/3 。
- -XX:MaxTenuringThreshold=threshold,经过多少次 young GC 才能到 ParOldGen ,默认是 15 ,可以设置范围 0-15 。
- -XX:+UseParallelGC,使用 ParallelGC 垃圾收集器。
- -XX:+PrintCommandLineFlags,输出 JVM 选项。