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

createh52周前 (12-17)技术教程16

#头条创作挑战赛#

设置堆大小:

通过-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 -jar 启动参数 java -jar 启动参数 内存

/usr/local/java/jdk1.8.0_131/bin/java -jar -server -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=...

java命令行参数 java命令行参数表示形式

命令行参数就是main方法里面的参数String[] args他就是一个数组,args只是数据类型的一个名称,就是一个数组的变量,名称无所谓,类型没变就行了。这个就是程序的入口点。如图7.4所示:图7...

Java启动参数设置 java启动参数设置java.exe名字

set JAVA_OPTS=-Xms4g -Xmx4g -Xmn3g -XX:SurvivorRatio=6 -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=2...

WebService的发布与调用 webservices调用

WebService 简介首先先说一下,什么是webService,webService也是一种CS结构的WEB服务,C呢就是Client(客户端),S呢就是Server(服务端),webServic...

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

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

java面试题|JVM调优常用JVM参数代码实例简介

JVM(Java Virtual Machine)启动参数用于配置Java应用程序的运行时环境,包括内存管理、垃圾回收(GC)算法、性能调优和日志记录等。# JVM启动参数,不换行格式 # 设置堆内...