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

createh55个月前 (12-17)技术教程54

#头条创作挑战赛#

设置堆大小:

通过-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内存参数解析 java内置容器

在基于物理的服务器(此处主要与容器平台进行区分,故此描述)上运行Java应用程序时,我们通常会使用Java虚拟机参数"-Xms、-Xmx"来指定Java堆内存的初始值和最大值。如果要将...

Tomcat、JVM 参数如何调到性能最好?

Tomcat性能调优找到Tomcat根目录下的conf目录,修改server.xml文件的内容。对于这部分的调优,我所了解到的就是无非设置一下Tomcat服务器的最大并发数和Tomcat初始化时创建的...

SpringBoot使用@Valid注解+Exception全局处理器优雅处理参数验证

目录一、为什么使用 @Valid 来验证参数二、@Valid 注解的作用三、@Valid 的相关注解四、使用 @Valid 进行参数校验步骤实体类中添加 @Valid 相关注解接口类中添加 @Vali...

Tomcat项目内存参数调优 tomcat调优和jvm内存配置

一、常见的Java内存溢出有以下三种:1. Java.lang.OutOfMemoryError: Java heap space 即JVM Heap溢出解释说明:JVM在启动的时候会自动设置JVM...

微信支付报"调用支付jsapi缺少参数 total_fee",实际Java统一

微信支付报"调用支付jsapi缺少参数 total_fee",实际Java统一支付接口,返回“body参数长度有误”之前帮朋友做过一次微信支付,记得里面到处都是坑,今天朋友说出现问题提...