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