类加载与JIT编译参数
-classpath/-cp
指定类路径(优先级最高)
系统classpath
项目依赖jar包和类目录
-cp lib/*:classes
-verbose:class
打印类加载/卸载日志(排查类冲突)
禁用
排查类加载异常时开启
-verbose:class
-XX:+TraceClassLoading
详细打印类加载过程
禁用
调试类加载顺序
-XX:+TraceClassLoading
-XX:+DoEscapeAnalysis
启用逃逸分析(优化对象分配,栈上分配)
启用(JDK8+)
保持启用(提升性能)
-XX:+DoEscapeAnalysis
-XX:+EliminateAllocations
启用标量替换(将对象拆分为局部变量,减少堆分配)
启用
配合逃逸分析
-XX:+EliminateAllocations
-XX:+UseCompressedOops
启用64位JVM指针压缩(减少内存占用)
启用(JDK8+)
保持启用
-XX:+UseCompressedOops
-XX:CompileThreshold
JIT编译阈值(方法调用次数)
10000
保持默认(热点方法自动编译)
-XX:CompileThreshold=10000
-XX:ReservedCodeCacheSize
JIT编译代码缓存大小
约240MB
高并发场景可增大
-XX:ReservedCodeCacheSize=512m
调试与监控参数
-Djava.rmi.server.hostname=<ip>
指定远程监控的IP
-Djava.rmi.server.hostname=192.168.1.100
-Dcom.sun.management.jmxremote
启用JMX远程监控
配合监控工具(JConsole、VisualVM)
-Dcom.sun.management.jmxremote.port=<port>
JMX监控端口
-Dcom.sun.management.jmxremote.port=1099
-Dcom.sun.management.jmxremote.authenticate=false
禁用JMX认证(测试环境)
测试环境简化配置
-Dcom.sun.management.jmxremote.ssl=false
禁用JMX SSL(测试环境)
测试环境简化配置
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=<port>
启用远程调试
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
-XX:+PrintFlagsFinal
打印所有JVM参数的最终值(验证配置是否生效)
禁用