JDK8 JVM 部分参数说明(一)

举报
阿奇@汪汪队 发表于 2020/03/21 14:30:22 2020/03/21
【摘要】 JDK8 JVM 部分参数说明(一)

最新整理一下JVM参数,发现很多很复杂,没有全部收集的,现在对部分网络上材料汇总记录


这些选项是特定于Java HotSpot虚拟机的通用选项。-X

显示所有可用-X选项的帮助。

-Xbatch

禁用后台编译。默认情况下,JVM将该方法编译为后台任务,以解释器模式运行该方法,直到后台编译完成。该-Xbatch标志禁用后台编译,以便所有方法的编译作为前台任务继续进行,直到完成。

此选项相当于-XX:-BackgroundCompilation

-Xbootclasspath:path

指定以冒号(:)分隔的目录,JAR文件和ZIP存档的列表,以搜索引导类文件。这些用于代替JDK中包含的引导类文件。

不要部署使用此选项的应用程序覆盖类rt.jar,因为这违反了JRE二进制代码许可证。

-Xbootclasspath / a:path

指定以冒号(:)分隔的目录,JAR文件和ZIP存档的列表,以附加到默认引导类路径的末尾。

不要部署使用此选项的应用程序覆盖类rt.jar,因为这违反了JRE二进制代码许可证。

-Xbootclasspath / p:path

指定以冒号(:)分隔的目录,JAR文件和ZIP存档的列表,以预先添加到默认引导程序类路径的前面。

不要部署使用此选项的应用程序覆盖类rt.jar,因为这违反了JRE二进制代码许可证。

-Xcheck:JNI

对Java Native Interface(JNI)函数执行其他检查。具体来说,它在处理JNI请求之前验证传递给JNI函数的参数和运行时环境数据。遇到的任何无效数据都表明本机代码存在问题,在这种情况下,JVM将以无法恢复的错误终止。使用此选项时,预计性能会下降。

-Xcomp

在第一次调用时强制编译方法。默认情况下,客户端VM(-client)执行1,000个已解释的方法调用,Server VM(-server)执行10,000个已解释的方法调用以收集有效编译的信息。指定该-Xcomp选项会禁用已解释的方法调用,从而以牺牲效率为代价来提高编译性能。

您还可以使用该-XX:CompileThreshold选项在编译之前更改已解释的方法调用的数量。

-Xdebug

什么也没做。提供向后兼容性。

-Xdiag

显示其他诊断消息。

-Xfuture

启用严格的类文件格式检查,以强制与类文件格式规范紧密一致。鼓励开发人员在开发新代码时使用此标志,因为更严格的检查将成为未来版本中的默认值。

-Xint

以仅解释模式运行应用程序。禁用对本机代码的编译,并且解释器将执行所有字节码。暂时(JIT)编译器提供的性能优势在此模式下不存在。

-Xinternalversion

显示比该-version选项更详细的JVM版本信息,然后退出。

-Xloggc:filename

设置应将重定向的GC事件信息重定向到的文件以进行日志记录。写入此文件的信息类似于-verbose:gc自每个记录事件之前的第一个GC事件以来经过的时间的输出。如果两者都使用相同的命令,则该-Xloggc选项将覆盖。-verbose:gcjava

例:

-Xloggc:垃圾collection.log

-Xmaxjitcodesize = size

指定JIT编译代码的最大代码高速缓存大小(以字节为单位)。附加字母kK表示千字节,mM指示兆字节,gG指示千兆字节。默认的最大代码缓存大小为240 MB; 如果使用该选项禁用分层编译-XX:-TieredCompilation,则默认大小为48 MB:

-Xmaxjitcodesize =240米

此选项相当于-XX:ReservedCodeCacheSize

-Xmixed

除了热方法之外,解释器执行所有字节码,热方法被编译为本机代码。

-Xmn 尺寸

设置年轻代(托儿所)的堆的初始和最大大小(以字节为单位)。附加字母kK表示千字节,mM指示兆字节,gG指示千兆字节。

堆的年轻代区域用于新对象。GC在该区域比在其他区域更频繁地进行。如果年轻一代的规模太小,那么将会进行大量的小型垃圾收集。如果大小太大,则只执行完整的垃圾收集,这可能需要很长时间才能完成。Oracle建议您将年轻代的大小保持在整个堆大小的一半到四分之一之间。

以下示例显示如何使用各种单位将年轻代的初始和最大大小设置为256 MB:

-Xmn256m 
-Xmn262144k 
-Xmn268435456

取而代之的是的-Xmn,为年轻一代都设置堆的初始和最大大小选项,您可以使用-XX:NewSize设置初始大小和-XX:MaxNewSize设置的最大尺寸。

-Xms 大小

设置堆的初始大小(以字节为单位)。该值必须是1024的倍数且大于1 MB。附加字母kK表示千字节,mM指示兆字节,gG指示千兆字节。

以下示例显示如何使用各种单位将分配的内存大小设置为6 MB:

-Xms6291456 
-Xms6144k 
-Xms6m

如果未设置此选项,则初始大小将设置为为旧代和年轻代分配的大小的总和。可以使用-Xmn选项或-XX:NewSize选项设置年轻代的堆的初始大小。

-Xmx 尺寸

  • 指定内存分配池的最大大小(以字节为单位),以字节为单位。该值必须是1024的倍数且大于2 MB。附加字母kK表示千字节,mM指示兆字节,gG指示千兆字节。根据系统配置在运行时选择默认值。对于服务器部署,-Xms-Xmx经常设置为相同的值。请参阅Java SE HotSpot虚拟机垃圾收集调整指南中的“人体工程学”部分http://docs.oracle.com/javase/8/docs/technotes/guides/vm/gctuning/index.html

    以下示例显示如何使用各种单位将分配的内存的最大允许大小设置为80 MB:

    -Xmx83886080 
    -Xmx81920k 
    -Xmx80m

    -Xmx选项相当于-XX:MaxHeapSize

  • -Xnoclassgc

  • 禁用类的垃圾收集(GC)。这可以节省一些GC时间,从而缩短应用程序运行期间的中断。

    -Xnoclassgc在启动时指定时,应用程序中的类对象将在GC期间保持不变,并始终被视为实时。这可能导致更多的内存被永久占用,如果不小心使用,将导致内存不足异常。

  • -Xprof

  • 配置正在运行的程序并将分析数据发送到标准输出。此选项作为在程序开发中有用的实用程序提供,不适用于生产系统。

  • -Xrs

  • 减少JVM对操作系统信号的使用。

    关闭挂钩通过在关闭时运行用户清理代码(例如关闭数据库连接)来启用Java应用程序的有序关闭,即使JVM突然终止也是如此。

    JVM捕获信号以实现意外终止的关闭挂钩。JVM使用SIGHUPSIGINTSIGTERM启动关闭挂钩的运行。

    JVM使用类似的机制来实现转储线程堆栈的功能以进行调试。JVM用于SIGQUIT执行线程转储。

    嵌入JVM的应用程序经常需要捕获诸如SIGINT或之类的信号SIGTERM,这可能导致对JVM信号处理程序的干扰。该-Xrs选项可用于解决此问题。当-Xrs被使用时,用于信号掩模SIGINTSIGTERMSIGHUP,和SIGQUIT不被JVM改变,并且对于这些信号的信号处理程序没有安装。

    指定有两种结果-Xrs

    • SIGQUIT 线程转储不可用。

    • 用户代码负责导致关闭挂钩运行,例如,通过System.exit()在终止JVM时调用。

  • -Xshare:模式

  • 设置类数据共享(CDS)模式。此选项的可能模式参数包括以下内容:

    • 汽车

    • 尽可能使用CDS。这是Java HotSpot 32位客户端VM的默认值。

    • 需要使用CDS。如果无法使用类数据共享,则打印错误消息并退出。

    • 不要使用CDS。这是Java HotSpot 32位服务器VM,Java HotSpot 64位客户端VM和Java HotSpot 64位服务器VM的默认值。

    • 倾倒

    • 手动生成CDS存档。按照“设置类路径”中的说明指定应用程序类路径。

      您应该使用每个新的JDK版本重新生成CDS存档。

  • -XshowSettings:类别

  • 显示设置并继续。此选项的可能类别参数包括以下内容:

    • 所有

    • 显示所有类别的设置。这是默认值。

    • 现场

    • 显示与区域设置相关的设置。

    • 性能

    • 显示与系统属性相关的设置。

    • VM

    • 显示JVM的设置。

  • -Xss 大小

  • 设置线程堆栈大小(以字节为单位)。附加字母kK表示KB,mM表示MB,gG表示GB。默认值取决于平台:

    以下示例以不同为单位将线程堆栈大小设置为1024 KB:

    -Xss1m 
    -Xss1024k 
    -Xss1048576

    此选项相当于-XX:ThreadStackSize

    • Linux / ARM(32位):320 KB

    • Linux / i386(32位):320 KB

    • Linux / x64(64位):1024 KB

    • OS X(64位):1024 KB

    • Oracle Solaris / i386(32位):320 KB

    • Oracle Solaris / x64(64位):1024 KB

  • -Xusealtsigs

  • 使用替代信号,而不是SIGUSR1SIGUSR2对JVM内部信号。此选项相当于-XX:+UseAltSigs

  • -Xverify:模式

  • 设置字节码验证器的模式。字节码验证可确保正确形成类文件,并满足“Java虚拟机规范”中第4.10节“ class文件验证”中列出的约束。

    不要关闭验证,因为这会减少Java提供的保护,并可能由于格式错误的类文件而导致问题。

    此选项的可能模式参数包括以下内容:

    • 远程

    • 验证引导类加载器未加载的所有字节码。如果未指定该-Xverify选项,则这是默认行为。

    • 所有

    • 启用所有字节码的验证。

    • 没有

    • 禁用所有字节码的验证。使用-Xverify:none不受支持。

高级运行时选项

这些选项控制Java HotSpot VM的运行时行为。

-XX:+ CheckEndorsedAndExtDirs

java如果命令使用了endorsed-standards override机制或扩展机制,则启用该选项以阻止命令运行Java应用程序。此选项通过检查以下内容来检查应用程序是否正在使用这些机制之一:

  • java.ext.dirsjava.endorsed.dirs系统属性设置。

  • lib/endorsed目录存在且不为空。

  • lib/ext目录包含除JDK之外的任何JAR文件。

  • 系统范围的特定于平台的扩展目录包含任何JAR文件。

-XX:+ DisableAttachMechanism

启用禁用允许工具附加到JVM的机制的选项。默认情况下,该选项被禁用,这意味着连接机制启用,您可以使用工具,例如jcmdjstackjmap,和jinfo

-XX:ErrorFile = filename

指定发生不可恢复的错误时写入错误数据的路径和文件名。默认情况下,此文件在当前工作目录中创建,并命名为hs_err_pidpid.log,其中pid是导致错误的进程的标识符。以下示例显示如何设置默认日志文件(请注意,进程的标识符指定为%p):

-XX:错误文件= / hs_err_pid%p.log

以下示例显示如何将错误日志设置为/var/log/java/java_error.log

-XX:错误文件= /无功/日志/ JAVA / java_error.log

如果无法在指定目录中创建文件(由于空间不足,权限问题或其他问题),则会在操作系统的临时目录中创建该文件。临时目录是/tmp

-XX:+ FailOverToOldVerifier

当新类型检查程序失败时,启用对旧验证程序的自动故障转移。默认情况下,此选项被禁用,并且对于具有最新字节码版本的类,它将被忽略(即,视为已禁用)。您可以为具有旧版字节码的类启用它。

-XX:+ FlightRecorder

允许在应用程序运行时使用Java Flight Recorder(JFR)。这是一个商业功能,与-XX:+UnlockCommercialFeatures选项一起使用如下:

java -XX:+ UnlockCommercialFeatures -XX:+ FlightRecorder

如果未提供此选项,则仍可通过提供相应的jcmd诊断命令在正在运行的JVM中启用Java Flight Recorder 。

-XX:-FlightRecorder

在应用程序运行时禁用Java Flight Recorder(JFR)。这是一个商业功能,与-XX:+UnlockCommercialFeatures选项一起使用如下:

java -XX:+ UnlockCommercialFeatures -XX:-FlightRecorder

如果提供此选项,则无法在正在运行的JVM中启用Java Flight Recorder。

-XX:FlightRecorderOptions = parameter = value

设置控制JFR行为的参数。这是一个与-XX:+UnlockCommercialFeatures选项配合使用的商业功能。仅当启用JFR时(即-XX:+FlightRecorder指定选项),才能使用此选项。

以下列表包含所有可用的JFR参数:

  • defaultrecording = {真|假}

  • 指定录制是连续背景录制还是在有限时间内运行。默认情况下,此参数设置为false(记录在限定时间内运行)。要使录制连续运行,请将参数设置为true

  • 磁盘= {真|假}

  • 指定JFR是否应将连续记录写入磁盘。默认情况下,此参数设置为false(禁用连续录制到磁盘)。要启用它,请将参数设置为true,并设置defaultrecording=true

  • dumponexit = {真|假}

  • 指定当JVM以受控方式终止时是否应生成JFR数据的转储文件。默认情况下,此参数设置为false(不生成退出时的转储文件)。要启用它,请将参数设置为true,并设置defaultrecording=true

    转储文件将写入dumponexitpath参数定义的位置。

  • dumponexitpath = path

  • 如果设置dumponexit=true参数,则使用JVM以受控方式退出时创建的JFR数据指定转储文件的路径和名称。只有在设置的情况下才能设置路径defaultrecording=true

    如果指定的路径是目录,则JVM会分配一个显示创建日期和时间的文件名。如果指定的路径包含文件名,并且该文件已存在,则JVM通过将日期和时间戳附加到指定的文件名来创建新文件。

  • globalbuffersize = size

  • 指定用于数据保留的主内存总量(以字节为单位)。追加kK到指定KB大小,mM以MB为单位指定大小,gG到指定GB的大小。默认情况下,大小设置为462848字节。

  • 日志等级= {安静|错误|警告|信息|调试|跟踪}

  • 指定JFR写入日志文件的数据量。默认情况下,它设置为info

  • maxage = 时间

  • 指定要为默认录制保留的磁盘数据的最长期限。附加s以指定以秒m为单位的时间,分钟,h小时或d天数(例如,指定30s表示30秒)。默认情况下,最大年龄设置为15分钟(15m)。

    仅当您设置disk=true参数时,此参数才有效。

  • maxchunksize = size

  • 指定记录中数据块的最大大小(以字节为单位)。追加kK到指定KB大小,mM以MB为单位指定大小,gG到指定GB的大小。默认情况下,数据块的最大大小设置为12 MB。

  • maxsize = size

  • 指定要为默认记录保留的磁盘数据的最大大小(以字节为单位)。追加kK到指定KB大小,mM以MB为单位指定大小,gG到指定GB的大小。默认情况下,磁盘数据的最大大小不受限制,此参数设置为0。

    仅当您设置disk=true参数时,此参数才有效。

  • repository = path

  • 指定临时磁盘存储的存储库(目录)。默认情况下,使用系统的临时目录。

  • samplethreads = {真|假}

  • 指定是否启用线程采样。仅当采样事件与此参数一起启用时,才会进行线程采样。默认情况下,启用此参数。

  • settings = path

  • 指定事件设置文件的路径和名称(类型为JFC)。默认情况下,使用该default.jfc文件,该文件位于JAVA_HOME/jre/lib/jfr

  • stackdepth = 深度

  • JFR的堆栈跟踪堆栈深度。默认情况下,深度设置为64个方法调用。最大值为2048,最小值为1。

  • threadbuffersize = size

  • 指定每线程本地缓冲区大小(以字节为单位)。追加kK到指定KB大小,mM以MB为单位指定大小,gG到指定GB的大小。此参数的较高值允许更多数据收集而不会争用将其刷新到全局存储。它可以在线程丰富的环境中增加应用程序占用空间。默认情况下,本地缓冲区大小设置为5 KB。

您可以通过用逗号分隔多个参数的值来指定它们。例如,要指示JFR将连续记录写入磁盘,并将数据块的最大大小设置为10 MB,请指定以下内容:

-XX:FlightRecorderOptions = defaultrecording = TRUE,磁盘= TRUE,maxchunksize = 10M

-XX:LargePageSizeInBytes = size

在Solaris上,设置用于Java堆的大页面的最大大小(以字节为单位)。的尺寸参数必须是2的幂(2,4,8,16,...)。附加字母kK表示千字节,mM指示兆字节,gG指示千兆字节。默认情况下,大小设置为0,这意味着JVM会自动选择大页面的大小。

以下示例说明如何将大页面大小设置为4兆字节(MB):

-XX:LargePageSizeInBytes =4米

-XX:MaxDirectMemorySize = size

设置新I / O(java.nio包)直接缓冲区分配的最大总大小(以字节为单位)。附加字母kK表示千字节,mM指示兆字节,gG指示千兆字节。默认情况下,大小设置为0,这意味着JVM会自动选择NIO直接缓冲区分配的大小。

以下示例说明如何以不同单位将NIO大小设置为1024 KB:

-XX:MaxDirectMemorySize = 1m 
-XX:MaxDirectMemorySize = 1024k 
-XX:MaxDirectMemorySize = 1048576

-XX:NativeMemoryTracking = mode

指定用于跟踪JVM本机内存使用情况的模式。此选项的可能模式参数包括以下内容:

  • 不跟踪JVM本机内存使用情况。如果未指定该-XX:NativeMemoryTracking选项,则这是默认行为。

  • 摘要

  • 仅跟踪JVM子系统的内存使用情况,例如Java堆,类,代码和线程。

  • 详情

  • 除了跟踪JVM子系统的内存使用情况外,还可以跟踪CallSite各个虚拟内存区域及其已提交区域的内存使用情况。

-XX:ObjectAlignmentInBytes = alignment

设置Java对象的内存对齐方式(以字节为单位)。默认情况下,该值设置为8个字节。指定的值应为2的幂,并且必须在8和256(含)的范围内。此选项可以使用具有大Java堆大小的压缩指针。

堆大小限制(以字节为单位)计算如下:

4GB * ObjectAlignmentInBytes

注意:随着对齐值的增加,对象之间未使用的空间也会增加。因此,您可能没有意识到使用具有大型Java堆大小的压缩指针会带来任何好处。

-XX:replaceString = string

设置自定义命令或一系列以分号分隔的命令,以便在发生不可恢复的错误时运行。如果字符串包含空格,则必须用引号括起来。

以下示例显示了如何使用该-XX:replaceString选项运行gcore命令来创建核心映像,并且在出现无法恢复的错误(%p指定当前进程)时,调试器将开始附加到进程:

-XX:replaceString =“gcore%p; dbx  - %p”

-XX:OnOutOfMemoryError = string

设置自定义命令或一系列以分号分隔的命令,以便在OutOfMemoryError首次引发异常时运行。如果字符串包含空格,则必须用引号括起来。有关命令字符串的示例,请参阅该-XX:replaceString选项的说明。

-XX:+ PerfDataSaveToFile

  • 如果启用,则在Java应用程序退出时保存jstat(1)二进制数据。此二进制数据保存在名为的文件中hsperfdata_<pid>,其中<pid>是您运行的Java应用程序的进程标识符。使用jstat如下显示包含在该文件中的性能数据:

    jstat -class file:/// <path> / hsperfdata_ <pid> 
    jstat -gc file:/// <path> / hsperfdata_ <pid>
  • -XX:+ PrintCommandLineFlags

  • 允许打印出现在命令行上的符合人体工程学选择的JVM标志。了解JVM设置的人体工程学值(例如堆空间大小和选定的垃圾收集器)可能很有用。默认情况下,禁用此选项并且不打印标志。

  • -XX:+ PrintNMTStatistics

  • 当启用本机内存跟踪时,允许在JVM出口处打印收集的本机内存跟踪数据(请参阅参考资料-XX:NativeMemoryTracking)。默认情况下,禁用此选项并且不打印本机内存跟踪数据。

  • -XX:+ RelaxAccessControlCheck

  • 减少验证程序中访问控制检查的数量。默认情况下,此选项被禁用,对于具有最新字节码版本的类,它将被忽略(即,视为已禁用)。您可以为具有旧版字节码的类启用它。

  • -XX:+ ResourceManagement

  • 在应用程序的运行时期间启用资源管理。

    这是一项商业功能,需要您还指定-XX:+UnlockCommercialFeatures选项,如下所示:

    java -XX:+UnlockCommercialFeatures -XX:+ResourceManagement

  • -XX:ResourceManagementSampleInterval = value(毫秒)

  • 设置控制资源管理测量的采样间隔的参数,以毫秒为单位。

    仅当启用资源管理(即-XX:+ResourceManagement指定选项)时,才能使用此选项。

  • -XX:SharedArchiveFile = path

  • 指定类数据共享(CDS)归档文件的路径和名称

  • -XX:SharedClassListFile = file_name

  • 指定包含要存储在类数据共享(CDS)存档中的类文件名称的文本文件。此文件包含每行一个类文件的全名,但斜杠(/)替换dots(.)除外。例如,指定类java.lang.Objecthello.Main,创建一个包含以下两行的文本文件:

    java / lang / Object 
    hello / Main

    您在此文本文件中指定的类文件应包含应用程序常用的类。它们可以包括应用程序,扩展或引导类路径中的任何类。

  • -XX:+ ShowMessageBoxreplaceString

  • 当JVM遇到无法恢复的错误时,允许显示对话框。这可以防止JVM退出并使进程保持活动状态,以便您可以将调试器附加到它以调查错误原因。默认情况下,禁用此选项。

  • -XX:StartFlightRecording = parameter = value

  • 启动Java应用程序的JFR记录。这是一个与-XX:+UnlockCommercialFeatures选项配合使用的商业功能。此选项等同于JFR.start在运行时启动记录的诊断命令。您可以在开始JFR录制时设置以下参数:

    您可以通过用逗号分隔多个参数的值来指定它们。例如,要将记录保存到当前工作目录中的test.jfr,并指示JFR压缩日志文件,请指定以下内容:

    -XX:StartFlightRecording =文件名= test.jfr,压缩= TRUE
    • 压缩= {真|假}

    • 指定是否使用gzip文件压缩实用程序压缩磁盘上的JFR记录日志文件(JFR类型)。仅当filename指定参数时,此参数才有效。默认设置为false(记录未压缩)。要启用压缩,请将参数设置为true

    • defaultrecording = {真|假}

    • 指定录制是连续背景录制还是在有限时间内运行。默认情况下,此参数设置为false(记录在限定时间内运行)。要使录制连续运行,请将参数设置为true

    • 延迟= 时间

    • 指定Java应用程序启动时间和记录开始之间的延迟。附加s以指定以秒m为单位的时间,分钟,h小时或d天数(例如,指定10m表示10分钟)。默认情况下,没有延迟,此参数设置为0。

    • dumponexit = {真|假}

    • 指定当JVM以受控方式终止时是否应生成JFR数据的转储文件。默认情况下,此参数设置为false(不生成退出时的转储文件)。要启用它,请将参数设置为true

      转储文件将写入filename参数定义的位置。

      例:

      -XX:StartFlightRecording =名=测试中,文件名= d:\ test.jfr,dumponexit =真
    • 持续时间= 时间

    • 指定录制的持续时间。附加s以指定以秒m为单位的时间,分钟,h小时或d天数(例如,指定5h表示5小时)。默认情况下,持续时间不受限制,此参数设置为0。

    • filename = path

    • 指定JFR记录日志文件的路径和名称。

    • name = 标识符

    • 指定JFR记录的标识符。默认情况下,它设置为Recording x

    • maxage = 时间

    • 指定要为默认录制保留的磁盘数据的最长期限。附加s以指定以秒m为单位的时间,分钟,h小时或d天数(例如,指定30s表示30秒)。默认情况下,最大年龄设置为15分钟(15m)。

    • maxsize = size

    • 指定要为默认记录保留的磁盘数据的最大大小(以字节为单位)。追加kK到指定KB大小,mM以MB为单位指定大小,gG到指定GB的大小。默认情况下,磁盘数据的最大大小不受限制,此参数设置为0。

    • settings = path

    • 指定事件设置文件的路径和名称(类型为JFC)。默认情况下,使用该default.jfc文件,该文件位于JAVA_HOME/jre/lib/jfr

  • -XX:ThreadStackSize = size

  • 设置线程堆栈大小(以字节为单位)。附加字母kK表示千字节,mM指示兆字节,gG指示千兆字节。默认值取决于平台:

    以下示例显示如何以不同单位将线程堆栈大小设置为1024 KB:

    -XX:ThreadStackSize = 1m 
    -XX:ThreadStackSize = 1024k 
    -XX:ThreadStackSize = 1048576

    此选项相当于-Xss

    • Linux / ARM(32位):320 KB

    • Linux / i386(32位):320 KB

    • Linux / x64(64位):1024 KB

    • OS X(64位):1024 KB

    • Oracle Solaris / i386(32位):320 KB

    • Oracle Solaris / x64(64位):1024 KB

  • -XX:+ TraceClassLoading

  • 允许在加载类时跟踪类。默认情况下,禁用此选项并且不跟踪类。

  • -XX:+ TraceClassLoadingPreorder

  • 允许按引用顺序跟踪所有已加载的类。默认情况下,禁用此选项并且不跟踪类。

  • -XX:+ TraceClassResolution

  • 允许跟踪常量池分辨率。默认情况下,禁用此选项并且不跟踪常量池分辨率。

  • -XX:+ TraceClassUnloading

  • 允许在卸载类时跟踪类。默认情况下,禁用此选项并且不跟踪类。

  • -XX:+ TraceLoaderConstraints

  • 允许跟踪加载器约束记录。默认情况下,禁用此选项并且不跟踪加载程序约束记录。

  • -XX:+ UnlockCommercialFeatures

  • 允许使用商业功能。Oracle Java SE Advanced或Oracle Java SE Suite软件包中包含商业功能,如Java SE产品页面中所定义http://www.oracle.com/technetwork/java/javase/terms/products/index.html

    默认情况下,此选项被禁用,JVM在没有商业功能的情况下运行。一旦为JVM进程启用了它们,就无法禁用它们用于该进程。

    如果未提供此选项,则仍可使用相应的jcmd诊断命令在正在运行的JVM中解锁商业功能。

  • -XX:+ UseAltSigs

  • 使得能够使用替代信号,而不是SIGUSR1SIGUSR2用于JVM内部信号。默认情况下,此选项被禁用,并且不使用替代信号。此选项相当于-Xusealtsigs

  • -XX:+ UseAppCDS

  • 启用应用程序类数据共享(AppCDS)。要使用AppCDS,还必须指定选项的值-XX:SharedClassListFile-XX:SharedArchiveFile两个CDS在转储时间(见选项-Xshare:dump)和应用程序运行时间。

    这是一项商业功能,需要您同时指定-XX:+UnlockCommercialFeatures选项。这也是一个实验性的特征; 它可能在将来的版本中发生变化

    请参阅“应用程序类数据共享”

  • -XX:-UseBiasedLocking

  • 禁用使用偏置锁定。一些具有大量无竞争同步的应用程序可以在启用此标志的情况下获得显着的加速,而具有某些锁定模式的应用程序可能会看到减速。有关偏置锁定技术的更多信息,请参阅Java调优白皮书中的示例http://www.oracle.com/technetwork/java/tuning-139912.html#section4.2.5

    默认情况下,启用此选项。

  • -XX:-UseCompressedOops

  • 禁用压缩指针的使用。默认情况下,启用此选项,并在Java堆大小小于32 GB时使用压缩指针。启用此选项时,对象引用表示为32位偏移而不是64位指针,这通常会在运行Java堆大小小于32 GB的应用程序时提高性能。此选项仅适用于64位JVM。

    当Java堆大小大于32GB时,也可以使用压缩指针。请参阅-XX:ObjectAlignmentInBytes选项。

  • -XX:+ UseHugeTLBFS

  • Linux的此选项相当于指定-XX:+UseLargePages。默认情况下禁用此选项。当保留内存时,此选项预先分配所有大页面; 因此,JVM无法动态增长或缩小大页面内存区域; 看看-XX:UseTransparentHugePages你是否想要这种行为。

    有关更多信息,请参阅“大页面”

  • -XX:+ UseLargePages

  • 允许使用大页面内存。默认情况下,禁用此选项并且不使用大页面内存。

    有关更多信息,请参阅“大页面”

  • -XX:+ UseMembar

  • 允许在线程状态转换上发布membars。默认情况下,在除ARM服务器之外的所有平台上都禁用此选项。(建议您不要在ARM服务器上禁用此选项。)

  • -XX:+ UsePerfData

  • 启用该perfdata功能。默认情况下启用此选项以允许JVM监视和性能测试。禁用它会禁止创建hsperfdata_userid目录。要禁用该perfdata功能,请指定-XX:-UsePerfData

  • -XX:+ UseTransparentHugePages

  • 在Linux上,允许使用可以动态增长或缩小的大页面。默认情况下禁用此选项。您可能会遇到透明大页面的性能问题,因为操作系统会移动其他页面以创建大页面; 此选项可用于实验。

    有关更多信息,请参阅“大页面”

  • -XX:+ AllowUserSignalHandlers

  • 允许应用程序安装信号处理程序。默认情况下,禁用此选项,并且不允许应用程序安装信号处理程序。

====================================

转自fr: https://www.cnblogs.com/syuf/p/10183683.html

多谢。

====================================


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。