Java技术干货| JVM常用的优化思路及配置参数

createh54个月前 (12-17)技术教程52

#头条创作挑战赛#

设置堆大小:

通过-Xms和-Xmx参数设置初始堆大小和最大堆大小。

示例: -Xms512m -Xmx1024m

设置新生代和老年代比例:

通过-XX:NewRatio参数设置新生代和老年代内存比例。

示例: -XX:NewRatio=2

设置垃圾收集器:

通过-XX:+UseParallelGC参数设置并行垃圾收集器。

示例: -XX:+UseParallelGC

设置GC线程数:

通过-XX:ParallelGCThreads参数设置并行垃圾收集器的线程数。

示例: -XX:ParallelGCThreads=4

设置GC回收时间:

通过-XX:MaxGCPauseMillis参数设置最大垃圾回收暂停时间。

示例: -XX:MaxGCPauseMillis=500

设置GC日志:

通过-XX:+PrintGC参数启用GC日志。

示例: -XX:+PrintGC

设置GC日志文件路径:

通过-XX:PrintGCDetails和-Xloggc参数设置GC日志输出到文件。

示例: -XX:PrintGCDetails -Xloggc:/path/to/gc.log

开启GC日志文件拆分:

通过-XX:+UseGCLogFileRotation和-XX:NumberOfGCLogFiles参数设置GC日志文件的拆分。

示例: -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5

设置GC日志文件大小:

通过-XX:GCLogFileSize参数设置GC日志文件的大小。

示例: -XX:GCLogFileSize=10M

设置GC并发线程数:

通过-XX:ConcGCThreads参数设置并发垃圾收集器的线程数。

示例: -XX:ConcGCThreads=2

关闭偏向锁:

通过-XX:-UseBiasedLocking参数关闭偏向锁。

示例: -XX:-UseBiasedLocking

设置栈大小:

通过-Xss参数设置线程栈大小。

示例: -Xss256k

设置元空间大小:

通过-XX:MetaspaceSize和-XX:MaxMetaspaceSize参数设置元空间大小。示例: -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m

关闭逃逸分析:

通过-XX:-DoEscapeAnalysis参数关闭逃逸分析。

示例: -XX:-DoEscapeAnalysis

关闭栈上分配:

通过-XX:-UseTLAB参数关闭栈上分配。

示例: -XX:-UseTLAB

关闭字符串重复:

通过-XX:-OptimizeStringConcat参数关闭字符串重复。

示例: -XX:-OptimizeStringConcat

开启大对象直接进入老年代:

通过-XX:+UseLargePagesInMetaspace参数开启大对象直接进入老年代。

示例: -XX:+UseLargePagesInMetaspace

开启类数据共享:

通过-XX:+UseSharedClassList和-XX:SharedClassListFile参数开启类数据共享。

示例: -XX:+UseSharedClassList -XX:SharedClassListFile=classes.jsa

设置线程堆栈预留空间:

通过-XX:ThreadStackSize参数设置线程堆栈预留空间。

示例: -XX:ThreadStackSize=1m

开启动态编译:

通过-XX:+TieredCompilation参数开启动态编译。

示例: -XX:+TieredCompilation

设置编译阈值:

通过-XX:CompileThreshold参数设置编译阈值。

示例: -XX:CompileThreshold=1000

开启基于时间的垃圾回收:

通过-XX:+UseAdaptiveSizePolicy参数开启基于时间的垃圾回收。

示例: -XX:+UseAdaptiveSizePolicy

设置并行GC的线程数:

通过-XX:ParallelGCThreads参数设置并行GC的线程数。

示例: -XX:ParallelGCThreads=4

设置最大直接内存大小:

通过-XX:MaxDirectMemorySize参数设置最大直接内存大小。

示例: -XX:MaxDirectMemorySize=1g

关闭编译器优化:

通过-XX:-UseCompiler参数关闭编译器优化。

示例: -XX:-UseCompiler

关闭栈帧扩展:

通过-XX:-UseStackBanging参数关闭栈帧扩展。

示例: -XX:-UseStackBanging

开启内联优化:

通过-XX:+Inline参数开启内联优化。

示例: -XX:+Inline

设置本地堆大小:

通过-XX:NativeMemoryTracking参数设置本地堆大小。

示例: -XX:NativeMemoryTracking=summary

设置最大元数据区域大小:

通过-XX:MaxMetaspaceSize参数设置最大元数据区域大小。

示例: -XX:MaxMetaspaceSize=256m

设置最大Code Cache大小:

通过-XX:ReservedCodeCacheSize参数设置最大Code Cache大小。

示例: -XX:ReservedCodeCacheSize=256m

设置最大字符串区域大小:

通过-XX:StringTableSize参数设置最大字符串区域大小。

示例: -XX:StringTableSize=1000000

设置最大堆外内存大小:

通过-XX:MaxDirectMemorySize参数设置最大堆外内存大小。

示例: -XX:MaxDirectMemorySize=1g

开启超线程:

通过-XX:+UseHyperThreads参数开启超线程。示例: -XX:+UseHyperThreads

设置线程池大小:

通过-XX:ParallelGCThreads参数设置线程池大小。

示例: -XX:ParallelGCThreads=4

开启异步GC:

通过-XX:+UseG1GC参数开启异步GC。

示例: -XX:+UseG1GC

相关文章

java -server -jar 启动参数详解 java启动jar包命令

一、使用G1 (jdk8)java -server -Xmx4G -Xms4G -XX:MaxMetaspaceSize=384M -XX:MetaspaceSize=384M -XX:+UseG1G...

SpringBoot 参数校验的方法 springboot参数校验不生效

Introduction有参数传递的地方都少不了参数校验。在web开发中,前端的参数校验是为了用户体验,后端的参数校验是为了安全。试想一下,如果在controller层中没有经过任何校验的参数通过se...

Java四种线程池和参数详解 java线程池有几种线程

一、四种线程池Java通过Executors提供四种静态方法来创建线程池例如://创建一个可缓存线程池 ExecutorService cachedThreadPool = Executors.ne...