封绝的世界

jvm配置参数总结

查看当前jvm配置参数的值
jsp查看所有的jvm端口
jinfo -flag 参数(XX:后面的)

JIT配置

-XX:CompileThreshold在方法调用的默认阈值在客户端1500次,在服务器端10000次。
-XX:-UseCounterDecay用来关闭热度衰减。
-XX:CounterHalfLifeTime设置半衰减的时间,单位是秒。

设置解释和编译的模式

-Xint 设置成纯解释器模式
-Xcomp 设置纯编译器模式
-Xmixed 设置成解释和编译器混合模式

设置jvm的client和server模式

-client 不在64位,可设置为client模式,方法内联:将引用的函数代码编译到引用点处,减少栈帧的生成,减少参数传递以及跳转过程;去虚拟化:对唯一的实现类进行内联;冗余消除:在运行期间把一些不会执行的代码折叠掉。
-server 在64位,优化包括:标量替换,栈上分配,同步消除基于逃逸分析。

Graal编辑器

-XX:+UnlockExperimentalVMOptions -XX:UseJVMCICompiler去开启Graal编译器

字符串常量池

-XX:StringTableSize jdk6默认为1009,jdk7默认为60013,jd8开始设置值的最小值1009。
-XX:+PrintStringTableStatistics 打印常量池的统计信息

异常错误dump

-XX:+HeapDumpOnOutOfMemoryError 堆出现oom时生成dump文件

使用的垃圾收集器

-XX:+PrintCommandLineFlags
-XX:+UseSerialGC 使用串行的垃圾回收器
-XX:+UseParNewGC 使用并行ParNew的垃圾回收器 已经失宠

-XX:+UseParallelGC 使用并行Parallel的垃圾回收器
-XX:+UseParallelOldGC 手动指定老年代都是使用并行回收收集器。
-XX:ParallelGCThreads 设置年轻代并行收集器的线程数。一般地,最好与CPU数量相等,以避免过多的线程数影响垃圾收集性能。

-XX:MaxGCPauseMillis 设置垃圾收集器最大停顿时间(即STw的时间)。单位是毫秒。
-XX:GCTimeRatio 垃圾收集时间占总时间的比例(=1/(N+1))。用于衡量吞吐量的大小。
-XX:+UseAdaptivesizePolicy 设置Parallel Scavenge收集器具有自适应调节策略
在这种模式下,年轻代的大小、Eden和Survivor的比例、晋升老年代的对象年龄等参数会被自动调整,已达到在堆大小、吞吐量和停顿时间之间的平衡点。
在手动调优比较困难的场合,可以直接使用这种自适应的方式,仅指定虚拟机的最大堆、目标的吞吐量(GCTimeRatio)和停顿时间(MaxGCPauseMills),让虚拟机自己完成调优工作。

-XX:+UseConcmarkSweepGC 使用cms的老年代回收器
-XX:CMSInitiatingOccupanyFraction 设置堆内存使用率的阈值,一旦达到该阈值,便开始进行回收。JDK6及以上版本默认值为92%。
-XX:+UseCMSCompactAtFullCollection 用于指定在执行完Full GC后对内存空间进行压缩整理,以此避免内存碎片的产生。不过由于内存压缩整理过程无法并发执行,所带来的问题就是停顿时间变得更长了。
-XX:CMSFullGCsBeforeCompaction 设置在执行多少次Full GC后对内存空间进行压缩整理。
-XX:ParallelCMSThreads 设置CMS的线程数量。
CMS默认启动的线程数是(ParallelGCThreads+3)/4,ParallelGCThreads是年轻代并行收集器的线程数。当CPU资源比较紧张时,受到CMS收集器线程的影响,应用程序的性能在垃圾回收阶段可能会非常糟糕。

posted @ 2022-02-28 11:40  天边的云云  阅读(149)  评论(0编辑  收藏  举报