jvm 《一》调优 一些有用的-XX选项 官方 api 文档介绍

一些有用的-XX选项


对于带有-server的Solaris Sparc,Java SE 6列出了缺省值。某些选项可能因架构/ OS / JVM版本而异。描述中列出了具有不同默认值的平台。

-XX:+<option>使用-XX:-<option>.Disa 打开和关闭布尔选项

数字选项设置为-XX:<option>=<number>。数字可以包括兆字节的“m”或“M”,千字节的“k”或“K”以及千兆字节的“g”或“G”(例如,32k与32768相同)。

字符串选项设置有-XX:<option>=<string>,通常用于指定文件,路径或命令列表

标记为可管理的标志可通过JDK管理界面(com.sun.management.HotSpotDiagnosticMXBean API)以及JConsole动态写入。在监视和管理Java SE 6平台应用程序中,可管理标志也可以通过jinfo -flag设置。

以下选项分为不同类别。

行为选项会更改VM的基本行为。

垃圾优先(G1)垃圾收集选项

性能调整选项是旋钮,可用于调整VM性能。

调试选项通常可以跟踪,打印或输出VM信息。


行为选择


选项和默认值 描述

-XX:-AllowUserSignalHandlers 如果应用程序安装了信号处理程序,请不要抱怨。(仅与Solaris和Linux相关。)

-XX:AltStackSize = 16384 备用信号堆栈大小(以千字节为单位)。(仅与Solaris相关,从5.0中删除。)

-XX:-DisableExplicitGC 默认情况下,启用对System.gc()的调用(-XX:-DisableExplicitGC)。使用-XX:+ DisableExplicitGC禁用对System.gc()的调用。请注意,JVM在必要时仍会执行垃圾回收。

-XX:+ FailOverToOldVerifier 新类型检查程序失败时故障转移到旧验证程序。(在6中引入)

-XX:+ HandlePromotionFailure 最年轻的一代系列不需要保证所有活动对象的完全升级。(在1.4.2更新11中引入)[5.0及更早版本:false。]

-XX:+ MaxFDLimit 将文件描述符的数量转换为最大值。(仅与Solaris相关。)

-XX:PreBlockSpin = 10 用于-XX的旋转计数变量:+ UseSpinning。控制在输入操作系统线程同步代码之前允许的最大旋转迭代。(在1.4.2中引入。)

-XX:-RelaxAccessControlCheck 放宽验证程序中的访问控制检查。(在6中引入)

-XX:+ ScavengeBeforeFullGC 在完整GC之前进行年轻一代GC。(在1.4.1中介绍。)

-XX:+ UseAltSigs 对于VM内部信号,使用备用信号而不是SIGUSR1和SIGUSR2。(在1.3.1更新9中引入,1.4.1。仅与Solaris相关。)

-XX:+ UseBoundThreads 将用户级线程绑定到内核线程。(仅与Solaris相关。)

-XX:-UseConcMarkSweepGC 为旧一代使用并发标记扫描集合。(在1.4.1中引入)

-XX:+ UseGCOverheadLimit 使用策略限制在引发OutOfMemory错误之前在GC中花费的VM时间的比例。(在6中引入)

-XX:+ UseLWPSynchronization 使用基于LWP而不是基于线程的同步。(在1.4.0中引入。仅与Solaris相关。)

-XX:-UseParallelGC 使用并行垃圾收集清除。(在1.4.1中引入)

-XX:-UseParallelOldGC 对完整集合使用并行垃圾回收。启用此选项会自动设置-XX:+ UseParallelGC。(在5.0更新中引入6.)

-XX:-UseSerialGC 使用串行垃圾收集。(5.0中引入。)

-XX:-UseSpinning 在进入操作系统线程同步代码之前,在Java监视器上启用朴素旋转。(仅与1.4.2和5.0相关。)[1.4.2,多处理器Windows平台:true]

-XX:+ UseTLAB 使用线程局部对象分配(在1.4.0中引入,在此之前称为UseTLE。)[1.4.2和更早版本,x86或使用-client:false]

-XX:+ UseSplitVerifier 使用具有StackMapTable属性的新类型检查器。(在5.0中引入。)[5.0:false]

-XX:+ UseThreadPriorities 使用本机线程优先级。

-XX:+ UseVMInterruptibleIO 在EINTR之前或与EINTR进行I / O操作的线程中断导致OS_INTRPT。(仅在Solaris中引入。仅与Solaris相关。)


垃圾优先(G1)垃圾收集选项


选项和默认值 描述

-XX:+ UseG1GC 使用垃圾优先(G1)收集器

-XX:MaxGCPauseMillis =n 设置最大GC暂停时间的目标。这是一个软目标,JVM将尽最大努力实现它。

-XX:InitiatingHeapOccupancyPercent = n 启动并发GC循环的(整个)堆占用百分比。它由GC使用,它基于整个堆的占用而不仅仅是其中一代(例如,G1)触发并发GC循环。值0表示“执行恒定GC循环”。默认值为45。

-XX:NewRatio =n 旧/新一代尺寸的比例。默认值为2。

-XX:SurvivorRatio =n 伊甸园/幸存者空间大小的比率。默认值为8。

-XX:MaxTenuringThreshold =n 终身临界值的最大值。默认值为15。

-XX:ParallelGCThreads =n 设置垃圾收集器并行阶段使用的线程数。默认值因运行JVM的平台而异。

-XX:ConcGCThreads =n 并发垃圾收集器将使用的线程数。默认值因运行JVM的平台而异。

-XX:G1ReservePercent = n 设置保留为false上限的堆的数量,以减少促销失败的可能性。默认值为10。

-XX:G1HeapRegionSize = n 使用G1,Java堆被细分为大小均匀的区域。这设置了各个子部门的大小。根据堆大小,符合人体工程学地确定此参数的默认值。最小值为1Mb,最大值为32Mb。


性能选项


选项和默认值 描述

-XX:+ AggressiveOpts 打开预期在即将发布的版本中默认的点性能编译器优化。(在5.0更新中引入6.)

-XX:CompileThreshold = 10000 编译前的方法调用/分支数[-client:1,500]

-XX:LargePageSizeInBytes =4米 设置用于Java堆的大页面大小。(在1.4.0更新1中引入。)[amd64:2m。]

-XX:MaxHeapFreeRatio = 70 GC后最大堆积空闲百分比以避免收缩。

-XX:MaxNewSize =大小 新一代的最大大小(以字节为单位)。从1.4开始,MaxNewSize被计算为NewRatio的函数。[1.3.1 Sparc:32m; 1.3.1 x86:2.5米。]

-XX:MaxPermSize =64米 永久代的大小。[5.0及更新版本:64位虚拟机缩放30%; 1.4 amd64:96m; 1.3.1 -client:32m。]

-XX:MinHeapFreeRatio = 40 GC后最小的堆积百分比以避免扩展。

-XX:NewRatio = 2 旧/新一代尺寸的比例。[Sparc -client:8; x86 -server:8; x86 -client:12。] - 客户端:4(1.3)8(1.3.1 +),x86:12]

-XX:NewSize= 2 新一代的默认大小(以字节为单位)[5.0及更新版本:64位虚拟机缩放30%; x86:1米; x86,5.0及更早版本:640k]

-XX:ReservedCodeCacheSize =32米 保留代码缓存大小(以字节为单位) - 最大代码缓存大小。[Solaris 64位,amd64和-server x86:2048m; 在1.5.0_06及更早版本中,Solaris 64位和amd64:1024m。

-XX:SurvivorRatio = 8 伊甸园/幸存者空间大小的比例[Solaris amd64:6;Sparc在1.3.1:25; 5.0及更早版本中的其他Solaris平台:32]

-XX:TargetSurvivorRatio = 50 清除后使用的幸存者空间的所需百分比。

-XX:ThreadStackSize = 512 线程堆栈大小(以KB为单位)。(0表示使用默认堆栈大小)[Sparc:512; Solaris x86:320(在5.0及更早版本中为256之前的版本); Sparc 64位:1024;Linux amd64:1024(5.0及更早版本中为0); 所有其他的0.]

-XX:+ UseBiasedLocking 启用偏置锁定。有关更多详细信息,请参阅此调整示例。(在5.0更新中引入6.)[5.0:false]

-XX:+ UseFastAccessorMethods 使用优化版本的Get <Primitive> Field。

-XX:-UseISM 使用亲密共享内存。[不适用于非Solaris平台。]有关详细信息,请参阅私密共享内存。

-XX:+ UseLargePages 使用大页面内存。(在5.0更新5中引入。)有关详细信息,请参阅Java支持大内存页面。

-XX:+ UseMPSS 使用具有4mb页面的多页面大小支持。不要与ISM一起使用,因为这取代了对ISM的需求。(在1.4.0更新1中引入,与Solaris 9及更新版本相关。)[1.4.1及更早版本:false]

-XX:+ UseStringCache 启用常用分配字符串的缓存。


-XX:AllocatePrefetchLines = 1 使用JIT编译代码中生成的预取指令在最后一次对象分配后加载的高速缓存行数。如果最后分配的对象是实例,则默认值为1;如果是数组,则默认值为3。


-XX:AllocatePrefetchStyle = 1 生成预取指令的代码样式。

0 - 没有生成预取指令* d *,

1 - 在每次分配后执行预取指令,

2 - 在执行预取指令时使用TLAB分配水印指针到门。


-XX:+ UseCompressedStrings 对字符串使用byte [],可以表示为纯ASCII。(在Java 6 Update 21性能发布中引入)


-XX:+ OptimizeStringConcat 尽可能优化字符串连接操作。(在Java 6 Update 20中引入)



调试选项


选项和默认值 描述

-XX:-CITime 打印在JIT编译器中花费的时间。(在1.4.0中引入。)

-XX:ErrorFile= / hs_err_pid <PID> .log中 如果发生错误,请将错误数据保存到此文件中。(在6中引入)

-XX:-ExtendedDTraceProbes 启用影响性能的dtrace探针。(仅在Solaris中引入。仅与Solaris相关。)

-XX:HeapDumpPath = / java_pid <PID> .hprof 堆转储的目录或文件名的路径。可管理。(在1.4.2更新12,5.0更新7中引入。)

-XX:-HeapDumpOnOutOfMemoryError 抛出java.lang.OutOfMemoryError时转储堆到文件。可管理。(在1.4.2更新12,5.0更新7中引入。)

-XX:OnError =“<cmd args>; <cmd args>” 在致命错误上运行用户定义的命令。(在1.4.2更新9中引入)

-XX:OnOutOfMemoryError =“<cmd args>; 

<cmd args>” 首次抛出OutOfMemoryError时运行用户定义的命令。(在1.4.2更新12,6中引入)

-XX:-PrintClassHistogram 在Ctrl-Break上打印类实例的直方图。可管理。(在1.4.2中引入。)jmap -histo命令提供了等效的功能。

-XX:-PrintConcurrentLocks 在Ctrl-Break线程转储中打印java.util.concurrent锁。可管理。(在6.中引入)jstack -l命令提供等效功能。

-XX:-PrintCommandLineFlags 打印出现在命令行上的标志。(5.0中引入。)

-XX:-PrintCompilation 编译方法时打印消息。

-XX:-PrintGC 在垃圾收集中打印消息。可管理。

-XX:-PrintGCDetails 在垃圾收集中打印更多细节。可管理。(在1.4.0中引入。)

-XX:-PrintGCTimeStamps 打印垃圾回收时的时间戳。可管理(1.4.0中引入)

-XX:-PrintTenuringDistribution 打印终身年龄信息。

-XX:-PrintAdaptiveSizePolicy 允许打印有关自适应生成大小的信息。

-XX:-TraceClassLoading 跟踪类的加载。

-XX:-TraceClassLoadingPreorder 跟踪按引用顺序(未加载)加载的所有类。(在1.4.2中引入。)

-XX:-TraceClassResolution 跟踪常量池分辨率。(在1.4.2中引入。)

-XX:-TraceClassUnloading 跟踪卸载类。

-XX:-TraceLoaderConstraints 跟踪记录装载机约束。(在6中引入)

-XX:+ PerfDataSaveToFile 退出时保存jvmstat二进制数据。

-XX:ParallelGCThreads =n 设置年轻和旧的并行垃圾收集器中的垃圾收集线程数。默认值因运行JVM的平台而异。

-XX:+ UseCompressedOops 允许使用压缩指针(对象引用表示为32位偏移而不是64位指针),以优化64位性能,Java堆大小小于32gb。

-XX:+ AlwaysPreTouch 在JVM初始化期间预先触摸Java堆。因此,堆的每个页面在初始化期间都是需求归零,而不是在应用程序执行期间递增。

-XX:AllocatePrefetchDistance =n 设置对象分配的预取距离。将使用新对象的值写入的内存以超出最后分配的对象的地址的距离(以字节为单位)预取到高速缓存中。每个Java线程都有自己的分配点。默认值因运行JVM的平台而异。

-XX:InlineSmallCode =n 仅当先前编译的方法生成的本机代码大小小于此值时,才对其进行内联。默认值因运行JVM的平台而异。

-XX:MaxInlineSize = 35 要内联的方法的最大字节码大小。

-XX:FreqInlineSize =n 要内联的频繁执行方法的最大字节码大小。默认值因运行JVM的平台而异。

-XX:LoopUnrollLimit =n 展开循环体,服务器编译器中间表示节点计数小于此值。服务器编译器使用的限制是此值的函数,而不是实际值。默认值因运行JVM的平台而异。

-XX:InitialTenuringThreshold = 7 设置用于并行年轻收集器中自适应GC大小调整的初始时效阈值。终结阈值是对象在被提升为旧的或终身的一代之前在年轻的集合中存活的次数。

-XX:MaxTenuringThreshold =n 设置用于自适应GC大小调整的最大暂定阈值。当前最大值为15.并行收集器的默认值为15,CMS为默认值。

-Xloggc:<文件名> 将GC详细输出记录到指定文件。详细输出由正常的详细GC标志控制。

-XX:-UseGCLogFileRotation 启用GC日志轮换,需要-Xloggc。

-XX:NumberOfGClogFiles = 1 设置旋转日志时要使用的文件数,必须> = 1.旋转的日志文件将使用以下命名方案,<filename> .0,<filename> .1,...,<filename> .n- 1。

-XX:GCLogFileSize = 8K 日志将在何时旋转日志文件的大小必须> = 8K。



这些就是 jvm 可以调节的全部选项了

ok



网络借阅文章:https://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html#Options

---------------------

作者:a_Ygygs_Dxdsr_XdMss

来源:CSDN

原文:https://blog.csdn.net/weixin_42749765/article/details/87344192

版权声明:本文为博主原创文章,转载请附上博文链接!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342

推荐阅读更多精彩内容

  • jstat -gccause pid 1 每格1毫秒输出结果 jstat -gccause pid 2000 每格...
    Java小铺阅读 5,163评论 1 2
  • Java 应用性能优化是一个老生常谈的话题,典型的性能问题如页面响应慢、接口超时,服务器负载高、并发数低,数据库频...
    Rick617阅读 7,315评论 1 9
  • 一 、java虚拟机底层结构详解 我们知道,一个JVM实例的行为不光是它自己的事,还涉及到它的子系统、存储区域、...
    葡萄喃喃呓语阅读 1,464评论 0 4
  • 窦红梅 焦点初级43期第715天分享: 时间过得好快,我们家小升初的考完了。今天的天气还特别热,老大正在考...
    阿慧_c55c阅读 106评论 0 0
  • 旦增尼玛:利在中邦出战时,一番获餽在王庭,凤啣丹诏归阳畔,得享佳名四海荣。 宿涵:躬耕陇亩,形神似劳,无拘无系,其...
    溪小猪阅读 1,355评论 0 1