Java虚拟机(JVM)有许多常见参数,用于控制其行为和性能。以下是一些常见的JVM参数及其说明:
1. 内存管理参数
-Xms<size>
START
设置初始堆内存大小。例如,`-Xms512m`表示初始堆大小为512MB。
-Xmx<size>
MAX
设置最大堆内存大小。例如,`-Xmx2048m`表示最大堆大小为2048MB。
-Xmn<size>
NEW
设置年轻代的大小,通常用于调优GC性能。
2. 垃圾回收参数
-XX:+UseSerialGC
使用串行垃圾回收器。
-XX:+UseParallelGC
使用并行垃圾回收器。
-XX:+UseG1GC
使用G1垃圾回收器,适用于大堆内存的应用。
3. 性能调优参数
-XX:NewRatio=<value>
设置年轻代与老年代的比例。
-XX:SurvivorRatio=<value>
设置年轻代中Eden区与Survivor区的比例。
-XX:MaxTenuringThreshold
设置对象在年轻代中被晋升到老年代前的最大年龄。
4. 调试与监控参数
-XX:+PrintGCDetails
输出详细的GC日志信息。
-XX:+PrintGCTimeStamps
在GC日志中输出时间戳。
-Xloggc:<file>
将GC日志输出到指定文件。
5.管理栈参数
1. -Xss
- 描述:设置每个线程的栈大小。
- 示例:
-Xss512k
表示每个线程的栈大小为512KB。
2. -XX:ThreadStackSize
- 描述:这是一个用于设置线程栈大小的参数,主要在某些JVM实现中使用。
- 示例:
-XX:ThreadStackSize=256k
设置线程栈大小为256KB。
3. -XX:MaxJavaStackTraceDepth
- 描述:设置Java栈跟踪的最大深度。
- 示例:
-XX:MaxJavaStackTraceDepth=1000
限制Java栈跟踪的最大深度为1000
6. 其他参数
- `-D<name>=<value>`:设置系统属性,供Java应用使用。
- `-classpath` 或 `-cp`:指定类路径,用于查找Java类文件。