JVM参数大全
2021-09-23 10:24:33 0 举报
AI智能生成
jvm参数
作者其他创作
大纲/内容
标准参数
-?
-help
-help
输出java标准参数列表及其描述
-verbose
-verbose:class
-verbose:class
输出jvm载入类的相关信息
-verbose:gc
输出每次GC的相关情况
-verbose:jni
输出native方法调用的相关情况
-version
输出java的版本信息,比如jdk版本、vendor、model
-version:release
指定class或者jar运行时需要的jdk版本信息
-client
设置jvm使用client模式
-server
设置jvm使server模式
-agentlib:libname[=options]
用于装载本地lib包
-agentpath:pathname[=options]
按全路径装载本地库,不再搜索PATH中的路径
-classpath classpath
-cp classpath
-cp classpath
告知jvm搜索目录名、jar文档名、zip文档名,之间用分号;分隔;
-Dproperty=value
设置系统属性名/值对
-enableassertions[:<package name>"..." | :<class name> ]
-ea[:<package name>"..." | :<class name> ]
-ea[:<package name>"..." | :<class name> ]
设置jvm是否启动断言机制(从JDK 1.4开始支持),缺省时jvm关闭断言机制。
-disableassertions[:<package name>"..." | :<class ; ]
-da[:<package name>"..." | :<class name> ]
-da[:<package name>"..." | :<class name> ]
设置jvm关闭断言处理
-enablesystemassertions
-esa
-esa
激活系统类的断言
-disablesystemassertions
-dsa
-dsa
关闭系统类的断言
-jar
指定以jar包的形式执行一个应用程序
-javaagent:jarpath[=options]
指定jvm启动时装入java语言设备代理
非标准参数
-X
输出非标准的参数列表及其描述
-Xint
仅解释模式执行,所有的字节码将被直接执行,而不会编译成本地码
-Xmixed
混合模式执行 (默认)
-Xbootclasspath:<用 ; 分隔的目录和 zip/jar 文件>
让jvm从指定路径(可以是分号分隔的目录、jar、或者zip)中加载bootclass,用来替换jdk的rt.jar;若非必要,一般不会用到;
-Xbootclasspath/a:<用 ; 分隔的目录和 zip/jar 文件>
将指定路径的所有文件追加到默认bootstrap路径中;
-Xbootclasspath/p:<用 ; 分隔的目录和 zip/jar 文件>
让jvm优先于bootstrap默认路径加载指定路径的所有文件
-Xdiag
显示附加诊断消息
-Xnoclassgc
关闭针对class的gc功能
-Xincgc
开启增量gc(默认为关闭)
-Xloggc:<file>
将 GC 状态记录在文件中 (带时间戳)
-Xbatch
禁用后台编译
-Xms<size>
设置初始 Java 堆大小,默认为物理内存的1/64,最小为1M;可以指定单位,比如k、m,若不指定,则默认为字节
-Xmx<size>
设置最大 Java 堆大小,默认为物理内存的1/4或者1G,最小为2M
-Xss<size>
设置 Java 线程堆栈大小,默认为512k
-Xprof
输出 cpu 配置文件数据
-Xfuture
让jvm对类文件执行严格的格式检查(默认jvm不进行严格格式检查),以符合类文件格式规范
-Xrs
减少 Java/VM 对操作系统信号的使用
-Xcheck:jni
对 JNI 函数执行其他检查
-Xshare:off
不尝试使用共享类数据
-Xshare:auto
在可能的情况下使用共享类数据 (默认)
-Xshare:on
要求使用共享类数据, 否则将失败。
-XshowSettings
显示所有设置并继续
-XshowSettings:all
显示所有设置并继续
-XshowSettings:vm
显示所有与 vm 相关的设置并继续
-XshowSettings:properties
显示所有属性设置并继续
-XshowSettings:locale
显示所有与区域设置相关的设置并继续
非Stable参数
行为参数(Behavioral Options)
-XX:-DisableExplicitGC
禁止调用System.gc();但jvm的gc仍然有效
-XX:+MaxFDLimit
最大化文件描述符的数量限制
-XX:+ScavengeBeforeFullGC
Full GC前调用YGC,默认为true
-XX:+UseGCOverheadLimit
在抛出OOM之前限制jvm耗费在GC上的时间比例
-XX:+UseThreadPriorities
启用本地线程优先级
-XX:+UseAdaptiveSizePolicy
自动选择年轻代区大小和相应的Survivor区比例
收集器设置
-XX:+UseSerialGC
设置串行收集器
-XX:+UseParallelGC
设置并行收集器
-XX:+UseParallelOldGC
老年代使用并行收集器
-XX:+UseParNewGC
新生代使用并行收集器
-XX:+UseConcMarkSweepGC
使用CMS并发收集器
-XX:+UseG1GC
设置G1收集器
-XX:ParallelGCThreads
并行收集器的线程数
并行收集器
-XX:+UseParallelGC
Full GC采用parallel MSC
-XX:+UseParNewGC
新生代使用并行收集器
-XX:-UseParallelOldGC
老年代使用并行收集器
-XX:MaxGCPauseMillis
每次年轻代垃圾回收的最长时间(最大暂停时间)
-XX:GCTimeRatio
设置垃圾回收时间占程序运行时间的百分比
CMS
-XX:+UseConcMarkSweepGC
使用CMS内存收集
-XX:+CMSIncrementalMode
设置为增量模式
-XX:CMSFullGCsBeforeCompaction
多少次后进行内存压缩
-XX:+CMSClassUnloadingEnabled
允许对类元数据进行回收
-XX:+CMSParallelRemarkEnabled
降低标记停顿
-XX+UseCMSCompactAtFullCollection
在FULL GC的时候, 对年老代的压缩
-XX:+UseCMSInitiatingOccupancyOnly
使用手动定义初始化定义开始CMS收集
-XX:CMSInitiatingOccupancyFraction=70
使用cms作为垃圾回收
使用70%后开始CMS收集
使用70%后开始CMS收集
-XX:CMSInitiatingPermOccupancyFraction
设置Perm Gen使用到达多少比率时触发
G1收集器
-XX:+UseG1Gc
使用G1收集器
-XX:G1HeapRegionSize
指定分区大小(1MB-32MB,且必须是2的幂),默认将整堆划分为2048个分区
-XX:G1NewSizePercent
新生代初始内存大小,默认整堆5%
-XX:G1MaxNewSizePercent
新生代最大内存内存
-XX:G1HeapWastePercent
堆废物百分比,默认5%
-XX:G1MixedGCCountTarget
参数混合周期的大总次数,默认8
性能调优(Performance Tuning)
-XX:NewSize
年轻代大小(1.3/1.4)
-XX:MaxNewSize
年轻代最大值(1.3/1.4)
-XX:MaxNewSize=size
新生成对象能占用内存的最大值
-XX:PermSize
持久代(perm gen)初始值,物理内存的1/64
-XX:MaxPermSize
持久代最大值,物理内存的1/4
-XX:MetaspaceSize
设置元空间大小
-XX:MaxMetaspaceSize
设置最大元空间大小,默认不受限制
-XX:ThreadStackSize
设置线程栈大小,若为0则使用系统默认值
-XX:NewRatio
年轻代(包括Eden和两个Survivor区)与年老代的比值(除去持久代)
-XX:SurvivorRatio
Eden区与Survivor区的大小比值
-XX:LargePageSizeInBytes
内存页的大小不可设置过大, 会影响Perm的大小
-XX:+AggressiveHeap
启用Java堆的优化
-XX:+UseFastAccessorMethods
原始类型的快速优化
-XX:+DisableExplicitGC
关闭System.gc()
-XX:MaxTenuringThreshold
垃圾最大年龄
-XX:+AggressiveOpts
加快编译
-XX:+UseBiasedLocking
锁机制的性能改善
-XX:+UseLargePages
使用大页面内存
-XX:SoftRefLRUPolicyMSPerMB
每兆堆空闲空间中SoftReference的存活时间,默认1s
-XX:PretenureSizeThreshold
对象超过多大是直接在旧生代分配,默认0
-XX:TLABWasteTargetPercent
TLAB占eden区的百分比,默认1%
-XX:+CollectGen0First
FullGC时是否先YGC,默认false
调试参数(Debugging Options)
-Xloggc:filename
把相关日志信息记录到文件以便分析.
与上面几个配合使用
与上面几个配合使用
-XX:-PrintGC
每次GC时打印相关信息
-XX:-PrintGCDetails
每次GC时打印详细信息
-XX:-PrintGCTimeStamps
打印每次GC的时间戳
-XX:+PrintGCApplicationStoppedTime
打印垃圾回收期间程序暂停的时间.可与上面混合使用
-XX:+PrintGCApplicationConcurrentTime
打印每次垃圾回收前,程序未中断的执行时间.可与上面混合使用
-XX:+PrintHeapAtGC
打印GC前后的详细堆栈信息
XX:+PrintTenuringDistribution
查看每次minor GC后新的存活周期的阈值
-XX:-CITime
打印消耗在JIT编译的时间
-XX:+PrintTLAB
查看TLAB空间的使用情况
-XX:-PrintCompilation
当一个方法被编译时打印相关信息
-XX:ErrorFile=./hs_err_pid<pid>.log
保存错误日志或者数据到文件中
-XX:-ExtendedDTraceProbes
开启solaris特有的dtrace探针
-XX:HeapDumpPath=./java_pid<pid>.hprof
指定导出堆信息时的路径或文件名
-XX:-HeapDumpOnOutOfMemoryError
当首次遭遇OOM时导出此时堆中相关信息
当首次遭遇OOM时导出此时堆中相关信息
-XX:OnError="<cmd args>;<cmd args>"
出现致命ERROR之后运行自定义命令
-XX:OnOutOfMemoryError="<cmd args>;<cmd args>"
当首次遭遇OOM时执行自定义命令
-XX:-PrintClassHistogram
遇到Ctrl-Break后打印类实例的柱状信息,与jmap -histo功能相同
-XX:-PrintConcurrentLocks
遇到Ctrl-Break后打印并发锁的相关信息,与jstack -l功能相同
-XX:-PrintCommandLineFlags
打印在命令行中出现过的标记
-XX:-TraceClassLoading
跟踪类的加载信息
-XX:-TraceClassLoadingPreorder
跟踪被引用到的所有类的加载信息
-XX:-TraceClassResolution
跟踪常量池
-XX:-TraceClassUnloading
跟踪类的卸载信息
-XX:-TraceLoaderConstraints
跟踪类加载器约束的相关信息
0 条评论
下一页