options: 命令行选项由空格分隔
classname:要启动的类的名称
filename: 要调用的Java Archive(JAR)文件的名称。仅与-jar
选项一起使用
args:传递给main()
方法的参数用空格分隔
参数 | 描述 |
---|---|
-agentlib:libname [= options ] | 加载指定的本地代理库。在库名之后,可以使用特定于库的以都好分割的选项列表 |
-agentpath:pathname [= options ] | 加载绝对路径名指定的本机代理库。此选项等效于-agentlib 但使用库的完整路径和文件名 |
-client | 选择Java HotSpot客户端VM。64位版本的Java SE Development Kit(JDK)当前忽略此选项,而是使用Server JVM |
-Dproperty=value | 设置系统属性值。该属性变量是没有空格表示属性的名称的字符串。的值变量是表示属性的值的字符串。如果value是带空格的字符串,则将其用引号括起来(例如-Dfoo="foo bar" ) |
-disableassertions[:[packagename]...|:classname] | 用来设置虚拟机关闭断言处理,packagename和classname的使用方法和-ea相同。 |
-da[:[packagename]...|:classname] | 禁用断言。默认情况下,在所有包和类中禁用断言。 |
-disablesystemassertions | 禁用所有系统类中的断言 |
-dsa | 禁用所有系统类中的断言 |
-enableassertions[:[packagename]...|:classname] | 启用断言。默认情况下,在所有包和类中禁用断言。 |
-ea[:[packagename]...|:classname] | 启用断言。默认情况下,在所有包和类中禁用断言。 |
-enablesystemassertions | 在所有系统类中启用断言 |
-esa | 在所有系统类中启用断言 |
-help | -? | 显示java 命令的使用信息,而不实际运行JVM |
-jar filename | 执行封装在JAR文件中的程序。该文件名参数是与包含在形成一条线的清单JAR文件的名称Main-Class: classname ,定义与类public static void main(String[] args) 充当应用程序的出发点方法 |
-javaagent:jarpath[=options] | 加载指定的Java编程语言代理程序。有关检测Java应用程序的更多信息,请参阅java.lang.instrumentJava API文档中的包描述 |
-jre-restrict-search | 在版本搜索中包含用户私有JRE |
-no-jre-restrict-search | 从版本搜索中排除用户私有JRE |
-server | 选择Java HotSpot Server VM。64位版本的JDK仅支持服务器VM,因此在这种情况下,该选项是隐式的 |
-showversion | 显示版本信息并继续执行应用程序。此选项等同于该-version 选项,但后者指示JVM在显示版本信息后退出 |
-splash:imgname | 使用imgname指定的图像显示启动画面。例如,要在启动应用程序时显示目录中的 |
-verbose:class | 显示有关每个已加载类的信息 |
-verbose:gc | 显示有关每个垃圾回收(GC)事件的信息 |
-verbose:jni | 显示有关使用本机方法和其他Java Native Interface(JNI)活动的信息 |
-version | 显示版本信息,然后退出。此选项等同于该-showversion 选项,但后者在显示版本信息后不指示JVM退出 |
-version:release | 指定用于运行应用程序的发行版本。如果java 调用的命令版本不符合此规范并且在系统上找到适当的实现,则将使用适当的实现 |
参数 | 描述 |
---|---|
-X |
显示所有可用 |
-Xbatch |
禁用后台编译。默认情况下,JVM将该方法编译为后台任务,以解释器模式运行该方法,直到后台编译完成。该 此选项相当于 |
-Xbootclasspath:path
|
指定由分号(;)分隔的目录,JAR文件和ZIP存档的列表,以搜索引导类文件。这些用于代替JDK中包含的引导类文件。 不要部署使用此选项的应用程序覆盖类 |
-Xbootclasspath/a:path |
指定由分号(;)分隔的目录,JAR文件和ZIP存档的列表,以附加到默认引导程序类路径的末尾。 不要部署使用此选项的应用程序覆盖类 |
-Xbootclasspath/p:path |
指定由分号(;)分隔的目录,JAR文件和ZIP存档的列表,以预先添加到默认引导程序类路径的前面。 不要部署使用此选项的应用程序覆盖类 |
-Xcheck:jni |
对Java Native Interface(JNI)函数执行其他检查。具体来说,它在处理JNI请求之前验证传递给JNI函数的参数和运行时环境数据。遇到的任何无效数据都表明本机代码存在问题,在这种情况下,JVM将以无法恢复的错误终止。使用此选项时,预计性能会下降 |
-Xcomp |
在第一次调用时强制编译方法。默认情况下,客户端VM( 您还可以使用该 |
-Xdebug |
什么也没做。提供向后兼容性 |
-Xdiag |
显示其他诊断消息 |
-Xfuture |
启用严格的类文件格式检查,以强制与类文件格式规范紧密一致。鼓励开发人员在开发新代码时使用此标志,因为更严格的检查将成为未来版本中的默认值 |
-Xint |
以仅解释模式运行应用程序。禁用对本机代码的编译,并且解释器将执行所有字节码。暂时(JIT)编译器提供的性能优势在此模式下不存在 |
-Xinternalversion |
显示比该 |
-Xloggc:filename |
设置应将重定向的GC事件信息重定向到的文件以进行日志记录。写入此文件的信息类似于 |
-Xmaxjitcodesize = size |
指定JIT编译代码的最大代码高速缓存大小(以字节为单位)。附加字母 此选项相当于 |
-Xmixed |
除了热方法之外,解释器执行所有字节码,热方法被编译为本机代码 |
-Xmnsize |
设置年轻代(托儿所)的堆的初始和最大大小(以字节为单位)。附加字母 |
-Xmssize |
设置堆的初始大小(以字节为单位)。该值必须是1024的倍数且大于1 MB。附加字母 |
-Xmxsize |
指定内存分配池的最大大小(以字节为单位),以字节为单位。该值必须是1024的倍数且大于2 MB。附加字母k或K表示千字节,m或M指示兆字节,g或G指示千兆字节。根据系统配置在运行时选择默认值。对于服务器部署,-Xms并-Xmx经常设置为相同的值。请参阅Java SE HotSpot虚拟机垃圾收集调整指南中的“人体工程学”部分 |
-Xnoclassgc | 禁用类的垃圾收集(GC)。这可以节省一些GC时间,从而缩短应用程序运行期间的中断。
|
-Xprof | 配置正在运行的程序并将分析数据发送到标准输出。此选项作为在程序开发中有用的实用程序提供,不适用于生产系统 |
-Xrs | 减少JVM对操作系统信号的使用 |
-Xshare:mode | 设置类数据共享(CDS)模式。此选项的可能模式参数包括以下内容: auto 尽可能使用CDS。这是Java HotSpot 32位客户端VM的默认值。 on 需要使用CDS。如果无法使用类数据共享,则打印错误消息并退出。 off 不要使用CDS。这是Java HotSpot 32位服务器VM,Java HotSpot 64位客户端VM和Java HotSpot 64位服务器VM的默认值。 dump 手动生成CDS存档。按照“设置类路径”中的说明指定应用程序类路径。 |
-XshowSettings:category | 显示设置并继续。此选项的可能类别参数包括以下内容: all 显示所有类别的设置。这是默认值。 locale 显示与区域设置相关的设置。 properties 显示与系统属性相关的设置。 VM 显示JVM的设置。 |
-Xsssize | 设置线程堆栈大小(以字节为单位)。附加字母k 或K 表示KB,m 或M 表示MB,g 或G 表示GB。默认值取决于虚拟内存 |
-Xverify:mode | 设置字节码验证器的模式。字节码验证可确保正确形成类文件,并满足“Java虚拟机规范”中第4.10节“ 不要关闭验证,因为这会减少Java提供的保护,并可能由于格式错误的类文件而导致问题。 此选项的可能模式参数包括以下内容: remote 验证引导类加载器未加载的所有字节码。如果未指定该 all 启用所有字节码的验证。 none 禁用所有字节码的验证。使用 |
参数 | 描述 |
---|---|
-XX:+CheckEndorsedAndExtDirs |
该 该 该 |
-XX:+DisableAttachMechanism |
启用禁用允许工具附加到JVM的机制的选项。默认情况下,该选项被禁用,这意味着连接机制启用,您可以使用工具,例如 |
-XX:ErrorFile=filename |
指定发生不可恢复的错误时写入错误数据的路径和文件名。默认情况下,此文件在当前工作目录中创建,并命名为 以下示例显示如何将错误日志文件设置为 如果无法在指定目录中创建文件(由于空间不足,权限问题或其他问题),则会在操作系统的临时目录中创建该文件。临时目录由 |
-XX:+FailOverToOldVerifier |
当新类型检查程序失败时,启用对旧验证程序的自动故障转移。默认情况下,此选项被禁用,并且对于具有最新字节码版本的类,它将被忽略(即,视为已禁用)。您可以为具有旧版字节码的类启用它 |
-XX:+FlightRecorder |
允许在应用程序运行时使用Java Flight Recorder(JFR)。这是一个商业功能,与 如果未提供此选项,则仍可通过提供相应的 |
-XX:-FlightRecorder |
在应用程序运行时禁用Java Flight Recorder(JFR)。这是一个商业功能,与 如果提供此选项,则无法在正在运行的JVM中启用Java Flight Recorder |
-XX:FlightRecorderOptions=parameter=value |
设置控制JFR行为的参数。这是一个与 |
-XX:LargePageSizeInBytes = size |
在Solaris上,设置用于Java堆的大页面的最大大小(以字节为单位)。的尺寸参数必须是2的幂(2,4,8,16,...)。附加字母 以下示例说明如何将大页面大小设置为4兆字节(MB): |
-XX:MaxDirectMemorySize = size |
设置新I / O( 以下示例说明如何以不同单位将NIO大小设置为1024 KB: |
-XX:NativeMemoryTracking = mode |
指定用于跟踪JVM本机内存使用情况的模式。此选项的可能模式参数包括以下内容:
off
不跟踪JVM本机内存使用情况。如果未指定该
summary
仅跟踪JVM子系统的内存使用情况,例如Java堆,类,代码和线程。
detail 除了跟踪JVM子系统的内存使用情况外,还可以跟踪 |
-XX:ObjectAlignmentInBytes = alignment |
设置Java对象的内存对齐方式(以字节为单位)。默认情况下,该值设置为8个字节。指定的值应为2的幂,并且必须在8和256(含)的范围内。此选项可以使用具有大Java堆大小的压缩指针。 堆大小限制(以字节为单位)计算如下:
注意:随着对齐值的增加,对象之间未使用的空间也会增加。因此,您可能没有意识到使用具有大型Java堆大小的压缩指针会带来任何好处 |
-XX:OnError = string |
设置自定义命令或一系列以分号分隔的命令,以便在发生不可恢复的错误时运行。如果字符串包含空格,则必须用引号括起来。 以下示例显示了如何使用该 前面的示例假定 |
-XX:OnOutOfMemoryError = string |
设置自定义命令或一系列以分号分隔的命令,以便在 |
-XX:+ PerfDataSaveToFile |
如果启用,则在Java应用程序退出时保存 |
-XX:+ PrintCommandLineFlags | 允许打印出现在命令行上的符合人体工程学选择的JVM标志。了解JVM设置的人体工程学值(例如堆空间大小和选定的垃圾收集器)可能很有用。默认情况下,禁用此选项并且不打印标志 |
-XX:+ PrintNMTStatistics | 当启用本机内存跟踪时,允许在JVM出口处打印收集的本机内存跟踪数据(请参阅参考资料-XX:NativeMemoryTracking )。默认情况下,禁用此选项并且不打印本机内存跟踪数据 |
-XX:+ RelaxAccessControlCheck | 减少验证程序中访问控制检查的数量。默认情况下,此选项被禁用,对于具有最新字节码版本的类,它将被忽略(即,视为已禁用)。您可以为具有旧版字节码的类启用它 |
-XX:+ ResourceManagement | 在应用程序的运行时期间启用资源管理。 这是一项商业功能,需要您还指定
|
-XX:ResourceManagementSampleInterval=value (milliseconds) | 设置控制资源管理测量的采样间隔的参数,以毫秒为单位。 仅当启用资源管理(即 |
-XX:SharedArchiveFile=path | 指定类数据共享(CDS)归档文件的路径和名称 |
-XX:SharedClassListFile=file_name | 指定包含要存储在类数据共享(CDS)存档中的类文件名称的文本文件。此文件包含每行一个类文件的全名,但斜杠( 您在此文本文件中指定的类文件应包含应用程序常用的类。它们可以包括应用程序,扩展或引导类路径中的任何类 |
-XX:+ShowMessageBoxOnError | 当JVM遇到无法恢复的错误时,允许显示对话框。这可以防止JVM退出并使进程保持活动状态,以便您可以将调试器附加到它以调查错误原因。默认情况下,禁用此选项 |
-XX:StartFlightRecording=parameter=value | 启动Java应用程序的JFR记录。这是一个与-XX:+UnlockCommercialFeatures 选项配合使用的商业功能。此选项等同于JFR.start 在运行时启动记录的诊断命令 |
-XX:ThreadStackSize=size | 设置线程堆栈大小(以字节为单位)。附加字母 以下示例显示如何以不同单位将线程堆栈大小设置为1024 KB: 此选项相当于 |
-XX:+TraceClassLoading | 允许在加载类时跟踪类。默认情况下,禁用此选项并且不跟踪类 |
-XX:+TraceClassLoadingPreorder | 允许按引用顺序跟踪所有已加载的类。默认情况下,禁用此选项并且不跟踪类 |
-XX:+TraceClassResolution | 允许跟踪常量池分辨率。默认情况下,禁用此选项并且不跟踪常量池分辨率 |
-XX:+TraceClassUnloading | 允许在卸载类时跟踪类。默认情况下,禁用此选项并且不跟踪类 |
-XX:+TraceLoaderConstraints | 允许跟踪加载器约束记录。默认情况下,禁用此选项并且不跟踪加载程序约束记录 |
-XX:+UnlockCommercialFeatures | 默认情况下,此选项被禁用,JVM在没有商业功能的情况下运行。一旦为JVM进程启用了它们,就无法禁用它们用于该进程。 如果未提供此选项,则仍可使用相应的 |
-XX:+UseAppCDS | 启用应用程序类数据共享(AppCDS)。要使用AppCDS,还必须指定选项的值 这是一项商业功能,需要您同时指定 见 |
-XX:-UseBiasedLocking | 禁用使用偏置锁定。一些具有大量无竞争同步的应用程序可以在启用此标志的情况下获得显着的加速,而具有某些锁定模式的应用程序可能会看到减速。有关偏置锁定技术的更多信息,请参阅Java调优白皮书中的示例 默认情况下,启用此选项 |
-XX:-UseCompressedOops | 禁用压缩指针的使用。默认情况下,启用此选项,并在Java堆大小小于32 GB时使用压缩指针。启用此选项时,对象引用表示为32位偏移而不是64位指针,这通常会在运行Java堆大小小于32 GB的应用程序时提高性能。此选项仅适用于64位JVM。 当Java堆大小大于32GB时,也可以使用压缩指针。请参阅 |
-XX:+UseLargePages | 允许使用大页面内存。默认情况下,禁用此选项并且不使用大页面内存 |
-XX:+UseMembar | 允许在线程状态转换上发布membars。默认情况下,在除ARM服务器之外的所有平台上都禁用此选项。(建议您不要在ARM服务器上禁用此选项。) |
-XX:+UsePerfData | 启用该perfdata 功能。默认情况下启用此选项以允许JVM监视和性能测试。禁用它会禁止创建hsperfdata_userid 目录。要禁用该perfdata 功能,请指定-XX:-UsePerfData |
-XX:+AllowUserSignalHandlers | 允许应用程序安装信号处理程序。默认情况下,禁用此选项,并且不允许应用程序安装信号处理程序 |
参数 | 描述 |
---|---|
-XX:+AggressiveOpts |
允许使用积极的性能优化功能,这些功能有望在即将发布的版本中成为默认功能。默认情况下,禁用此选项并且不使用实验性能功能 |
-XX:AllocateInstancePrefetchLines=lines |
设置在实例分配指针之前预取的行数。默认情况下,预取的行数设置为1: 只有Java HotSpot Server VM支持此选项 |
-XX:AllocatePrefetchDistance=size |
设置对象分配的预取距离的大小(以字节为单位)。将从最后分配的对象的地址开始预取将要使用新对象的值写入的内存。每个Java线程都有自己的分配点。 负值表示基于平台选择预取距离。正值是预取的字节数。附加字母 以下示例显示如何将预取距离设置为1024字节: 只有Java HotSpot Server VM支持此选项 |
-XX:AllocatePrefetchInstr=instruction |
将预取指令设置为在分配指针之前预取。只有Java HotSpot Server VM支持此选项。可能的值为0到3.值后面的实际指令取决于平台。默认情况下,预取指令设置为0: 只有Java HotSpot Server VM支持此选项 |
-XX:AllocatePrefetchLines=lines |
使用编译代码中生成的预取指令设置在最后一次对象分配后要加载的高速缓存行数。如果最后分配的对象是实例,则默认值为1;如果是数组,则默认值为3。 以下示例显示如何将加载的缓存行数设置为5: 只有Java HotSpot Server VM支持此选项 |
-XX:AllocatePrefetchStepSize=size |
设置顺序预取指令的步长(以字节为单位)。附加字母 只有Java HotSpot Server VM支持此选项 |
-XX:AllocatePrefetchStyle=style |
为预取指令设置生成的代码样式。的风格参数是从0至3的整数: 0 不要生成预取指令。 1 每次分配后执行预取指令。这是默认参数。 2 使用线程局部分配块(TLAB)水印指针来确定何时执行预取指令。 3 在SPARC上使用BIS指令进行分配预取。 只有Java HotSpot Server VM支持此选项 |
-XX:+BackgroundCompilation |
启用后台编译。默认情况下启用此选项。要禁用后台编译,请指定 |
-XX:CICompilerCount=threads |
设置用于编译的编译器线程数。默认情况下,服务器JVM的线程数设置为2,客户端JVM的线程数设置为1,如果使用分层编译,则会扩展为核心数。以下示例显示如何将线程数设置为2: |
-XX:CodeCacheMinimumFreeSpace=size |
设置编译所需的最小可用空间(以字节为单位)。附加字母 |
-XX:CompileCommand=command,method[,option] |
指定要对方法执行的命令 |
-XX:CompileCommandFile=filename |
设置从中读取JIT编译器命令的文件。默认情况下,该 命令文件中的每一行代表一个命令,一个类名和一个使用该命令的方法名。例如,此行打印类的 有关为JIT编译器指定要对方法执行的命令的更多信息,请参阅该 |
-XX:CompileOnly=methods |
设置应限制编译的方法列表(以逗号分隔)。仅编译指定的方法。使用完整的类名(包括包和子包)指定每个方法。例如,为了仅编译 请注意,指定了完整的类名,包括由斜杠( 虽然不支持通配符,但您只能指定类或包名称来编译该类或包中的所有方法,并且只指定在任何类中使用此名称编译方法的方法: |
-XX:CompileThreshold=invocations |
设置编译前解释的方法调用的数量。默认情况下,在服务器JVM中,JIT编译器执行10,000次解释方法调用以收集有效编译的信息。对于客户端JVM,默认设置为1,500次调用。启用分层编译时,将忽略此选项; 看到选项 您可以通过指定 |
-XX:+DoEscapeAnalysis |
允许使用转义分析。默认情况下启用此选项。要禁用转义分析,请指定 |
-XX:InitialCodeCacheSize=size |
设置初始代码高速缓存大小(以字节为单位)。附加字母 |
-XX:+Inline |
启用方法内联。默认情况下启用此选项以提高性能。要禁用方法内联,请指定 |
-XX:InlineSmallCode=size |
设置应内联的已编译方法的最大代码大小(以字节为单位)。附加字母 |
-XX:+LogCompilation |
允许将编译活动记录到 默认情况下,禁用此选项并且不记录编译活动。该 每次使用该 |
-XX:MaxInlineSize=size |
设置要内联的方法的最大字节码大小(以字节为单位)。附加字母 |
-XX:MaxNodeLimit=nodes |
设置单个方法编译期间要使用的最大节点数。默认情况下,最大节点数设置为65,000: |
-XX:MaxTrivialSize=size |
设置要内联的简单方法的最大字节码大小(以字节为单位)。附加字母 |
-XX:+OptimizeStringConcat |
启用 |
-XX:+PrintAssembly |
通过使用外部 默认情况下,禁用此选项并且不打印汇编代码。该 |
-XX:+PrintCompilation |
每次编译方法时,通过向控制台打印消息,从JVM启用详细诊断输出。这使您可以查看实际编译的方法。默认情况下,禁用此选项并且不打印诊断输出。 您还可以使用该 |
-XX:+PrintInlining |
允许打印内联决策。这使您可以查看哪些方法被内联。 默认情况下,禁用此选项并且不打印内联信息。该 |
-XX:ReservedCodeCacheSize=size |
设置JIT编译代码的最大代码缓存大小(以字节为单位)。附加字母 |
-XX:RTMAbortRatio=abort_ratio |
RTM中止比率指定为所有已执行RTM事务的百分比(%)。如果许多中止事务变得大于此比率,则编译后的代码将被去优化。 |
-XX:RTMRetryCount=number_of_retries |
RTM锁定代码将在中止或忙碌时重试此选项指定的次数,然后再回退到正常锁定机制。此选项的默认值为5. |
-XX:-TieredCompilation |
禁用分层编译。默认情况下,启用此选项。只有Java HotSpot Server VM支持此选项 |
-XX:+UseAES |
为Intel,AMD和SPARC硬件启用基于硬件的AES内在函数。Intel Westmere(2010及更新版本),AMD Bulldozer(2011及更新版本)以及SPARC(T4及更新版本)均为支持的硬件。UseAES与UseAESIntrinsics一起使用 |
-XX:+UseAESIntrinsics |
默认情况下启用UseAES和UseAESIntrinsics标志,仅支持Java HotSpot Server VM 32位和64位。要禁用基于硬件的AES内在函数,请指定 支持使用32位和64位的UseAES和UseAESIntrinsics标志 |
-XX:+UseCodeCacheFlushing |
在关闭编译器之前启用刷新代码缓存。默认情况下启用此选项。要在关闭编译器之前禁用刷新代码缓存,请指定 |
-XX:+UseCondCardMark |
在更新卡表之前,可以检查卡是否已经标记。默认情况下禁用此选项,并且只应在具有多个套接字的计算机上使用此选项,从而提高严重依赖并发操作的Java应用程序的性能。只有Java HotSpot Server VM支持此选项 |
-XX:+UseRTMDeopt |
根据中止率自动调谐RTM锁定。该比率由 |
-XX:+UseRTMLocking |
为所有膨胀的锁生成受限制的事务性内存(RTM)锁定代码,使用正常的锁定机制作为回退处理程序。默认情况下禁用此选项。与RTM相关的选项仅适用于支持事务同步扩展(TSX)的x86 CPU上的Java HotSpot Server VM。 RTM是英特尔TSX的一部分,它是x86指令集扩展,有助于创建多线程应用程序。RTM引入了新的指示 当另一个线程尝试访问同一事务时,对事务的锁定会膨胀,从而阻止最初未请求访问该事务的线程。RTM要求在事务中止或失败时指定后备操作集。RTM锁是一种委托给TSX系统的锁。 RTM提高了在关键区域中具有低冲突的高竞争锁的性能(这是不能同时由多个线程访问的代码)。RTM还提高了粗粒度锁定的性能,这在多线程应用程序中通常表现不佳。(粗粒度锁定是长时间保持锁定以最小化获取和释放锁定的开销的策略,而细粒度锁定是通过仅在必要时锁定并尽快解锁来尝试实现最大并行性的策略。此外,对于不同线程使用的轻度争用锁,RTM可以减少错误的缓存行共享,也称为缓存行乒乓。当来自不同处理器的多个线程访问不同的资源时会发生 但资源共享相同的缓存行。结果,处理器重复地使其他处理器的高速缓存行无效,这迫使它们从主存储器而不是它们的高速缓存读取 |
-XX:+UseSHA |
为SPARC硬件启用SHA加密散列函数的基于硬件的内在函数。 在 此功能仅在使用 要禁用所有基于硬件的SHA内在函数,请指定 |
-XX:+UseSHA1Intrinsics |
为SHA-1加密哈希函数启用内在函数 |
-XX:+UseSHA256Intrinsics |
为SHA-224和SHA-256加密哈希函数启用内在函数 |
-XX:+UseSHA512Intrinsics |
为SHA-384和SHA-512加密散列函数启用内在函数 |
-XX:+UseSuperWord |
允许将标量操作转换为超级字操作。默认情况下启用此选项。要禁用将标量操作转换为超级字操作,请指定 |
参数 | 描述 |
---|---|
-XX:+ HeapDumpOnOutOfMemoryError |
在 |
-XX:HeapDumpPath = path |
设置 以下示例显示如何将堆转储文件设置为 |
-XX:LogFile = path |
设置写入日志数据的路径和文件名。默认情况下,该文件在当前工作目录中创建,并以其命名 以下示例显示如何将日志文件设置为 |
-XX:+ PrintClassHistogram |
允许在 设置此选项等同于运行 |
-XX:+ PrintConcurrentLocks |
设置此选项等同于运行 |
-XX:+ UnlockDiagnosticVMOptions |
解锁用于诊断JVM的选项。默认情况下,此选项已禁用,诊断选项不可用 |
参数 | 描述 |
---|---|
-XX:+ AggressiveHeap |
启用Java堆优化。根据计算机的配置(RAM和CPU),这会将各种参数设置为具有密集内存分配的长时间运行作业的最佳选择。默认情况下,禁用该选项并且不优化堆 |
-XX:+ AlwaysPreTouch |
在JVM初始化期间允许触摸Java堆上的每个页面。这会在进入 |
-XX:+ CMSClassUnloadingEnabled |
使用并发标记清除(CMS)垃圾收集器时启用类卸载。默认情况下启用此选项。要禁用CMS垃圾收集器的类卸载,请指定 |
-XX:+CMSClassUnloadingEnabled |
使用并发标记清除(CMS)垃圾收集器时启用类卸载。默认情况下启用此选项。要禁用CMS垃圾收集器的类卸载,请指定 |
-XX:CMSExpAvgFactor=percent |
设置在计算并发收集统计信息的指数平均值时用于加权当前样本的时间百分比(0到100)。默认情况下,指数平均值因子设置为25%。以下示例显示如何将因子设置为15%: -XX:CMSExpAvgFactor = 15 |
-XX:CMSInitiatingOccupancyFraction=percent |
设置启动CMS收集周期的旧代占用率(0到100)的百分比。默认值设置为-1。任何负值(包括默认值)都意味着 以下示例显示如何将占用率设置为20%: -XX:CMSInitiatingOccupancyFraction = 20 |
-XX:+CMSScavengeBeforeRemark |
在CMS备注步骤之前启用清理尝试。默认情况下,禁用此选项 |
-XX:CMSTriggerRatio=percent |
设置在 以下示例显示如何将占用率设置为75%: -XX:CMSTriggerRatio = 75 |
-XX:ConcGCThreads=threads |
设置用于并发GC的线程数。默认值取决于JVM可用的CPU数。 例如,要将并发GC的线程数设置为2,请指定以下选项: -XX:ConcGCThreads = 2 |
-XX:+DisableExplicitGC |
启用禁用处理呼叫的选项 |
-XX:+ExplicitGCInvokesConcurrent |
通过 |
-XX:+ExplicitGCInvokesConcurrentAndUnloadsClasses |
|
-XX:G1HeapRegionSize=size |
设置使用垃圾优先(G1)收集器时Java堆所细分的区域的大小。该值可以介于1 MB和32 MB之间。默认区域大小根据堆大小以符合人体工程学的方式确定。 以下示例显示如何将细分的大小设置为16 MB: -XX:G1HeapRegionSize =16m |
-XX:+G1PrintHeapRegions |
允许打印有关哪些区域已分配以及哪些区域由G1收集器回收的信息。默认情况下,禁用此选项 |
-XX:G1ReservePercent=percent |
设置保留为false上限的堆的百分比(0到50),以减少G1收集器升级失败的可能性。默认情况下,此选项设置为10%。 以下示例显示如何将保留堆设置为20%: -XX:G1ReservePercent = 20 |
-XX:InitialHeapSize=size |
设置内存分配池的初始大小(以字节为单位)。该值必须为0或1024的倍数且大于1 MB。附加字母 以下示例显示如何使用各种单位将分配的内存大小设置为6 MB: -XX:InitialHeapSize = 6291456
-XX:InitialHeapSize = 6144k
-XX:InitialHeapSize = 6m
如果将此选项设置为0,则初始大小将设置为为旧代和年轻代分配的大小的总和。可以使用 |
-XX:InitialSurvivorRatio=ratio | 设置吞吐量垃圾收集器使用的初始幸存者空间比率(由 以下公式可用于根据年轻一代的大小(Y)和初始幸存者空间比率(R)计算幸存者空间(S)的初始大小: S = Y /(R + 2)
等式中的2表示两个幸存者空间。指定为初始幸存者空间比的值越大,初始幸存者空间大小越小。 默认情况下,初始幸存者空间比率设置为8.如果使用年轻代空间大小的默认值(2 MB),则幸存者空间的初始大小将为0.2 MB。 以下示例显示如何将初始幸存者空间比率设置为4: -XX:InitialSurvivorRatio = 4 |
-XX:InitiatingHeapOccupancyPercent=percent | 设置启动并发GC循环的堆占用百分比(0到100)。它由垃圾收集器使用,它根据整个堆的占用而触发并发GC循环,而不仅仅是其中一代(例如,G1垃圾收集器)。 默认情况下,初始值设置为45%。值0表示不间断的GC循环。以下示例显示如何将启动堆占用率设置为75%: -XX:InitiatingHeapOccupancyPercent = 75 |
-XX:MaxGCPauseMillis=time | 设置最大GC暂停时间的目标(以毫秒为单位)。这是一个软目标,JVM将尽最大努力实现它。默认情况下,没有最大暂停时间值。 以下示例显示如何将最大目标暂停时间设置为500毫秒: -XX:MaxGCPauseMillis = 500 |
-XX:MaxHeapSize=size | 设置内存分配池的最大大小(以字节为单位)。该值必须是1024的倍数且大于2 MB。附加字母 以下示例显示如何使用各种单位将分配的内存的最大允许大小设置为80 MB: -XX:MaxHeapSize = 83886080
-XX:MaxHeapSize = 81920k
-XX:MaxHeapSize = 80m
该 |
-XX:MaxHeapFreeRatio=percent | 设置GC事件后允许的最大空闲堆空间百分比(0到100)。如果可用堆空间扩展到此值以上,则堆将缩小。默认情况下,此值设置为70%。 以下示例显示如何将最大可用堆比率设置为75%: -XX:MaxHeapFreeRatio = 75 |
-XX:MaxMetaspaceSize=size | 设置可以为类元数据分配的最大本机内存量。默认情况下,大小不受限制。应用程序的元数据量取决于应用程序本身,其他正在运行的应用程序以及系统上可用的内存量。 以下示例显示如何将最大类元数据大小设置为256 MB: -XX:MaxMetaspaceSize =256m |
-XX:MaxNewSize=size | 设置年轻代(托儿所)的堆的最大大小(以字节为单位)。默认值按人体工程学设置 |
-XX:MaxTenuringThreshold=threshold | 设置自适应GC大小调整中使用的最大暂定阈值。最大值为15.并行(吞吐量)收集器的默认值为15,CMS收集器的默认值为6。 以下示例显示如何将最大期限阈值设置为10: -XX:MaxTenuringThreshold = 10 |
-XX:MetaspaceSize=size | 设置分配的类元数据空间的大小,该空间将在第一次超出时触发垃圾回收。根据使用的元数据量,增加或减少垃圾收集的阈值。默认大小取决于平台 |
-XX:MinHeapFreeRatio=percent | 设置GC事件后允许的最小空闲堆空间百分比(0到100)。如果可用堆空间低于此值,则将扩展堆。默认情况下,此值设置为40%。 以下示例显示如何将最小可用堆比率设置为25%: -XX:MinHeapFreeRatio = 25 |
-XX:NewRatio=ratio | 设置年轻和老一代尺寸之间的比率。默认情况下,此选项设置为2.以下示例显示如何将年轻/旧比率设置为1: -XX:NewRatio = 1 |
-XX:NewSize=size | 设置年轻代(托儿所)的堆的初始大小(以字节为单位)。附加字母 堆的年轻代区域用于新对象。GC在该区域比在其他区域更频繁地进行。如果年轻一代的规模太小,那么将会执行大量的小型GC。如果尺寸太大,则只会执行完整的GC,这可能需要很长时间才能完成。Oracle建议您将年轻代的大小保持在整个堆大小的一半到四分之一之间。 以下示例显示如何使用各种单位将年轻代的初始大小设置为256 MB: -XX:NewSize = 256m
-XX:NewSize = 262144k
-XX:NewSize = 268435456
该 |
-XX:ParallelGCThreads=threads | 设置用于年轻和老年代的并行垃圾收集的线程数。默认值取决于JVM可用的CPU数。 例如,要将并行GC的线程数设置为2,请指定以下选项: -XX:ParallelGCThreads = 2 |
-XX:+ParallelRefProcEnabled | 启用并行参考处理。默认情况下,禁用此选项 |
-XX:+PrintAdaptiveSizePolicy | 允许打印有关自适应生成大小的信息。默认情况下,禁用此选项 |
-XX:+PrintGC | 允许在每个GC上打印消息。默认情况下,禁用此选项 |
-XX:+PrintGCApplicationConcurrentTime | 允许打印自上次暂停后经过的时间(例如,GC暂停)。默认情况下,禁用此选项 |
-XX:+PrintGCApplicationStoppedTime | 允许打印暂停(例如,GC暂停)持续多长时间。默认情况下,禁用此选项 |
-XX:+PrintGCDateStamps | 允许在每个GC上打印日期戳。默认情况下,禁用此选项 |
-XX:+PrintGCDetails | 允许在每个GC上打印详细消息。默认情况下,禁用此选项 |
-XX:+PrintGCTaskTimeStamps | 允许为每个GC工作线程任务打印时间戳。默认情况下,禁用此选项 |
-XX:+PrintGCTimeStamps | 允许在每个GC上打印时间戳。默认情况下,禁用此选项 |
-XX:+PrintStringDeduplicationStatistics | 打印详细的重复数据删除统计信息。默认情况下,禁用此选项。请参阅-XX:+UseStringDeduplication 选项 |
-XX:+PrintTenuringDistribution | 允许打印终身年龄信息。以下是输出的示例: 期望的幸存者大小48286924字节,新阈值10(最大10)
- 年龄1:28992024字节,28992024总计
- 年龄2:1366864字节,30358888总计
- 年龄3:1425912字节,31784800总计
...
1岁对象是最年轻的幸存者(它们是在之前的清除之后创建的,在最近的清除中幸存下来,并从伊甸园迁移到幸存者空间)。2岁的物体在两次清除中幸存下来(在第二次清除期间,它们被从一个幸存者空间复制到下一个幸存者空间)。等等。 在前面的示例中,28 992 024个字节在一次清除中幸存,并从eden复制到幸存者空间,1 366 864个字节由2岁对象占用,等等。每行中的第三个值是年龄n的对象的累积大小或减。 默认情况下,禁用此选项 |
-XX:+ScavengeBeforeFullGC | 在每个完整GC之前启用年轻代的GC。默认情况下启用此选项。Oracle建议您不要禁用它,因为在完整GC之前清除年轻代可以减少从旧代空间到年轻代空间可到达的对象数。要在每个完整GC之前禁用年轻代的GC,请指定-XX:-ScavengeBeforeFullGC |
-XX:SoftRefLRUPolicyMSPerMB=time | 设置软件可访问对象在上次引用后在堆上保持活动状态的时间(以毫秒为单位)。默认值是堆中每个可用兆字节的生存期的一秒。该 以下示例显示如何将值设置为2.5秒: -XX:SoftRefLRUPolicyMSPerMB = 2500 |
-XX:StringDeduplicationAgeThreshold=threshold | String 达到指定年龄的对象被视为重复数据删除的候选对象。对象的年龄是对垃圾收集存活多少次的度量。这有时被称为终身; 看到-XX:+PrintTenuringDistribution 选项。请注意,String 在达到此年龄之前提升到旧堆区域的对象始终被视为重复数据删除的候选对象。此选项的默认值为3 。请参阅-XX:+UseStringDeduplication 选项 |
-XX:SurvivorRatio=ratio | 设置伊甸园空间大小与幸存者空间大小之间的比率。默认情况下,此选项设置为8.以下示例显示如何将eden / survivor空间比率设置为4: -XX:SurvivorRatio = 4 |
-XX:TargetSurvivorRatio=percent | 设置年轻垃圾收集后使用的幸存者空间(0到100)的所需百分比。默认情况下,此选项设置为50%。 以下示例显示如何将目标幸存者空间比率设置为30%: -XX:TargetSurvivorRatio = 30 |
-XX:TLABSize=size | 设置线程局部分配缓冲区(TLAB)的初始大小(以字节为单位)。附加字母 以下示例显示如何将初始TLAB大小设置为512 KB: -XX:TLABSize = 512K |
-XX:+UseAdaptiveSizePolicy | 允许使用自适应生成大小。默认情况下启用此选项。要禁用自适应生成大小调整,请明确指定-XX:-UseAdaptiveSizePolicy 和设置内存分配池的大小(请参阅-XX:SurvivorRatio 选项) |
-XX:+UseCMSInitiatingOccupancyOnly | 允许使用占用值作为启动CMS收集器的唯一标准。默认情况下,此选项已禁用,可能会使用其他条件 |
-XX:+UseConcMarkSweepGC | 允许为旧一代使用CMS垃圾收集器。Oracle建议您在spam( 默认情况下,禁用此选项,并根据计算机的配置和JVM的类型自动选择收集器。启用此选项后,将 |
-XX:+UseG1GC | 允许使用垃圾优先(G1)垃圾收集器。它是一个服务器式垃圾收集器,针对具有大量RAM的多处理器机器。它以高概率满足GC暂停时间目标,同时保持良好的吞吐量。G1收集器推荐用于需要大堆(大小约为6 GB或更大)且GC延迟要求有限的应用(稳定且可预测的暂停时间低于0.5秒)。 默认情况下,禁用此选项,并根据计算机的配置和JVM的类型自动选择收集器 |
-XX:+UseGCOverheadLimit | 允许使用策略来限制在OutOfMemoryError 引发异常之前JVM在GC上花费的时间比例。默认情况下,此选项处于启用状态,OutOfMemoryError 如果将超过98%的总时间花在垃圾回收上并且回收的堆少于2%,则并行GC将抛出该选项。当堆很小时,此功能可用于防止应用程序长时间运行,几乎没有进展。要禁用此选项,请指定-XX:-UseGCOverheadLimit |
-XX:+UseNUMA | 通过增加应用程序对低延迟内存的使用,在具有非均匀内存架构(NUMA)的计算机上实现应用程序的性能优化。默认情况下,此选项被禁用,并且不会对NUMA进行优化。该选项仅在使用并行垃圾收集器时可用(-XX:+UseParallelGC ) |
-XX:+UseParallelGC | 允许使用并行清除垃圾收集器(也称为吞吐量收集器),通过利用多个处理器来提高应用程序的性能。 默认情况下,禁用此选项,并根据计算机的配置和JVM的类型自动选择收集器。如果已启用,则会 |
-XX:+UseParallelOldGC | 允许将并行垃圾收集器用于完整的GC。默认情况下,禁用此选项。启用它会自动启用该-XX:+UseParallelGC 选项 |
-XX:+UseParNewGC | 允许在年轻一代中使用并行线程进行收集。默认情况下,禁用此选项。设置-XX:+UseConcMarkSweepGC 选项时会自动启用它。使用-XX:+UseParNewGC 不带选项-XX:+UseConcMarkSweepGC 的选择是在JDK 8弃用 |
-XX:+UseSerialGC | 允许使用串行垃圾收集器。对于不需要垃圾收集的任何特殊功能的小型和简单应用程序,这通常是最佳选择。默认情况下,禁用此选项,并根据计算机的配置和JVM的类型自动选择收集器 |
-XX:+UseStringDeduplication | 启用字符串重复数据删除。默认情况下,禁用此选项。要使用此选项,必须启用垃圾优先(G1)垃圾收集器。请参阅 字符串重复数据删除 |
-XX:+UseTLAB | 允许在年轻代空间中使用线程局部分配块(TLAB)。默认情况下启用此选项。要禁用TLAB,请指定-XX:-UseTLAB |
参数 | 描述 |
---|---|
defaultrecording={true|false} |
指定录制是连续背景录制还是在有限时间内运行。默认情况下,此参数设置为 |
disk={true|false} |
指定JFR是否应将连续记录写入磁盘。默认情况下,此参数设置为 |
dumponexit={true|false} |
指定当JVM以受控方式终止时是否应生成JFR数据的转储文件。默认情况下,此参数设置为 转储文件将写入 |
dumponexitpath=path |
如果设置 如果指定的路径是目录,则JVM会分配一个显示创建日期和时间的文件名。如果指定的路径包含文件名,并且该文件已存在,则JVM通过将日期和时间戳附加到指定的文件名来创建新文件。 |
globalbuffersize=size |
指定用于数据保留的主内存总量(以字节为单位)。追加 |
loglevel={quiet|error|warning|info|debug|trace} |
指定JFR写入日志文件的数据量。默认情况下,它设置为 |
maxage=time |
指定要为默认录制保留的磁盘数据的最长期限。附加 仅当您设置 |
maxchunksize=size |
指定记录中数据块的最大大小(以字节为单位)。追加 |
maxsize=size |
指定要为默认记录保留的磁盘数据的最大大小(以字节为单位)。追加 仅当您设置 |
repository=path |
指定临时磁盘存储的存储库(目录)。默认情况下,使用系统的临时目录 |
samplethreads={true|false} |
指定是否启用线程采样。仅当采样事件与此参数一起启用时,才会进行线程采样。默认情况下,启用此参数 |
settings=path |
指定事件设置文件的路径和名称(类型为JFC)。默认情况下,使用该 |
stackdepth=depth |
JFR的堆栈跟踪堆栈深度。默认情况下,深度设置为64个方法调用。最大值为2048,最小值为1 |
threadbuffersize=size |
指定每线程本地缓冲区大小(以字节为单位)。追加 您可以通过用逗号分隔多个参数的值来指定它们。例如,要指示JFR将连续记录写入磁盘,并将数据块的最大大小设置为10 MB,请指定以下内容: |
参数 | 描述 |
---|---|
break |
在调试JVM时设置断点,以便在编译指定方法的开始时停止 |
compileonly |
除了指定的方法之外,从编译中排除所有方法。作为替代方法,您可以使用该 |
dontinline |
防止内联指定的方法 |
exclude |
从编译中排除指定的方法 |
help |
打印该 |
inline |
尝试内联指定的方法 |
log |
排除 |
option |
此命令可用于将JIT编译选项传递给指定的方法以代替最后一个参数(选项)。编译选项在方法名称后面的末尾设置。例如,要启用类方法的 您可以指定多个编译选项,以逗号或空格分隔 |
|
在编译指定方法后打印生成的汇编代码 |
quiet |
不要打印编译命令。默认情况下,使用 - 您可以通过 |
参数 | 描述 |
---|---|
-Xincgc |
启用增量垃圾收集。此选项在JDK 8中已弃用,无需替换 |
-Xrun libname |
加载指定的调试/分析库。此选项已被该选项取代 |
-XX:CMSIncrementalDutyCycle=percent |
设置允许并发收集器运行的次要集合之间的时间百分比(0到100)。在弃用选项后,此选项在JDK 8中已弃用,没有替换 |
-XX:CMSIncrementalDutyCycleMin=percent |
设置次要集合之间的时间百分比(0到100),它 |
-XX:+CMSIncrementalMode |
启用CMS收集器的增量模式。此选项在JDK 8中已弃用,没有替换,以及其他选项 |
-XX:CMSIncrementalOffset=percent |
设置增量模式占空比在次要集合之间的时间段内向右移动的时间百分比(0到100)。在弃用选项后,此选项在JDK 8中已弃用,没有替换 |
-XX:+CMSIncrementalPacing |
根据JVM运行时收集的统计信息,启用增量模式占空比的自动调整。在弃用选项后,此选项在JDK 8中已弃用,没有替换 |
-XX:CMSIncrementalSafetyFactor=percent |
设置计算占空比时用于添加保守性的时间百分比(0到100)。在弃用选项后,此选项在JDK 8中已弃用,没有替换 |
-XX:CMSInitiatingPermOccupancyFraction=percent |
设置启动GC的永久生成占用率(0到100)的百分比。此选项在JDK 8中已弃用,无需替换 |
-XX:MaxPermSize=size |
设置最大永久生成空间大小(以字节为单位)。此选项在JDK 8中已弃用,并由该 |
-XX:PermSize=size |
设置分配给永久生成的空间(以字节为单位),如果超出则会触发垃圾回收。此选项在JDK 8中已弃用,并被该 |
-XX:+UseSplitVerifier |
允许拆分验证过程。默认情况下,此选项在先前版本中已启用,验证分为两个阶段:类型引用(由编译器执行)和类型检查(由JVM运行时执行)。此选项在JDK 8中已弃用,现在默认情况下会对验证进行拆分,而无法将其禁用 |
-XX:+UseStringCache |
启用常用分配字符串的缓存。此选项已从JDK 8中删除,无需替换 |