首页 > 其他分享 >常用的 jvm 调优的参数都有哪些

常用的 jvm 调优的参数都有哪些

时间:2024-11-09 11:42:11浏览次数:3  
标签:例如 G1 哪些 回收 XX 调优 GC 垃圾 jvm

  

 

 

堆内存设置

  1. -Xms:设置JVM堆的初始大小。
  • 例如:​​-Xms2g​​ 表示初始堆大小为2GB。
  1. -Xmx:设置JVM堆的最大大小。
  • 例如:​​-Xmx2g​​ 表示最大堆大小为2GB。
  1. -XX:NewRatio:设置年轻代和老年代的比例。
  • 例如:​​-XX:NewRatio=4​​ 表示年轻代和老年代的比例为1:4。
  1. -XX:SurvivorRatio:设置Eden区和Survivor区的比例。
  • 例如:​​-XX:SurvivorRatio=8​​ 表示Eden区和Survivor区的比例为8:2。

垃圾回收器设置

  1. -XX:+UseSerialGC:使用串行垃圾回收器。
  2. -XX:+UseParallelGC:使用并行垃圾回收器(年轻代)。
  3. -XX:+UseParallelOldGC:使用并行垃圾回收器(年轻代和老年代)。
  • 例如:​​-XX:+UseParallelOldGC​​ 表示使用ParNew + Parallel Old垃圾回收器组合。
  1. -XX:+UseConcMarkSweepGC:使用CMS垃圾回收器(年轻代使用ParNew,老年代使用CMS)。
  • 例如:​​-XX:+UseConcMarkSweepGC​​ 表示使用CMS + Serial Old垃圾回收器组合。
  1. -XX:+UseG1GC:使用G1垃圾回收器。
  • 例如:​​-XX:+UseG1GC​​ 表示使用G1垃圾回收器。

垃圾回收日志

  1. -XX:+PrintGC:开启打印GC信息。
  2. -XX:+PrintGCDetails:打印详细的GC信息。
  3. -XX:+PrintGCTimeStamps:打印GC的时间戳。
  4. -XX:+PrintGCDateStamps:打印GC的日期和时间。
  5. -Xloggc::将GC日志输出到指定文件。
  • 例如:​​-Xloggc:/path/to/gc.log​​ 表示将GC日志输出到​​/path/to/gc.log​​文件。

其他常用参数

  1. -XX:MaxPermSize:设置永久代(PermGen)的最大大小(Java 8之前)。
  • 例如:​​-XX:MaxPermSize=256m​​ 表示永久代最大大小为256MB。
  1. -XX:MaxMetaspaceSize:设置元空间(Metaspace)的最大大小(Java 8及以后)。
  • 例如:​​-XX:MaxMetaspaceSize=256m​​ 表示元空间最大大小为256MB。
  1. -XX:MaxDirectMemorySize:设置直接内存的最大大小。
  • 例如:​​-XX:MaxDirectMemorySize=256m​​ 表示直接内存最大大小为256MB。
  1. -XX:G1HeapRegionSize:设置G1垃圾回收器的区域大小。
  • 例如:​​-XX:G1HeapRegionSize=16m​​ 表示G1垃圾回收器的区域大小为16MB。
  1. -XX:InitiatingHeapOccupancyPercent:设置触发G1垃圾回收的堆占用率阈值。
  • 例如:​​-XX:InitiatingHeapOccupancyPercent=70​​ 表示当堆占用率达到70%时触发G1垃圾回收。
  1. -XX:+HeapDumpOnOutOfMemoryError:在发生OutOfMemoryError时生成堆转储文件。
  • 例如:​​-XX:+HeapDumpOnOutOfMemoryError​​ 表示在发生OutOfMemoryError时生成堆转储文件。
  1. -XX:HeapDumpPath=:指定堆转储文件的保存路径。
  • 例如:​​-XX:HeapDumpPath=/path/to/heapdump.hprof​​ 表示堆转储文件保存路径为​​/path/to/heapdump.hprof​​。

示例

java -Xms2g -Xmx2g -XX:NewRatio=4 -XX:SurvivorRatio=8 -XX:+UseG1GC -XX:MaxMetaspaceSize=256m -XX:MaxDirectMemorySize=256m -XX:InitiatingHeapOccupancyPercent=70 -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/path/to/gc.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/path/to/heapdump.hprof -jar myapp.jar

标签:例如,G1,哪些,回收,XX,调优,GC,垃圾,jvm
From: https://www.cnblogs.com/89564f/p/18536503

相关文章

  • java 中都有哪些引用类型
    强引用(StrongReference):Java中默认声明的就是强引用,例如:​​Objectobj=newObject();​​只要强引用存在,垃圾回收器将永远不会回收被引用的对象,哪怕内存不足时,JVM也会直接抛出OutOfMemoryError,不会去回收。如果想中断强引用与对象之间的联系,可以显示的将强引用赋值为null......
  • java 中都有哪些引用类型
    强引用(StrongReference):Java中默认声明的就是强引用,例如:​​Objectobj=newObject();​​只要强引用存在,垃圾回收器将永远不会回收被引用的对象,哪怕内存不足时,JVM也会直接抛出OutOfMemoryError,不会去回收。如果想中断强引用与对象之间的联系,可以显示的将强引用赋值为null......
  • 关于MySQL表设计,测试人员可以关注哪些点
    测试人员关注数据库表设计是“测试左移”的一种手段,可以把有关数据库的潜在bug消灭在系统测试之前,从而提高交付效率。以MySQL为例,QA可从以下方面对数据库表设计做测试的左移:1、数据表功能表结构确保每张表都有主键,且主键值唯一且非空,以保证表中每行数据的唯一性和可识别性检......
  • 有哪些免费的轻量级在线 CRM 系统?6款CRM系统盘点
    对于许多中小型企业和初创公司而言,如何选择一款既能满足日常需求又具性价比的CRM系统很重要。通常来说,系统的成本是企业选型过程中不可忽视的因素,但在这么多的CRM系统中,各类CRM系统的功能与价格对比真的很容易让人眼花缭乱。本文将盘6款值得关注的免费轻量级在线CRM系统,包括简道......
  • AUTOSAR AP在实际使用中有哪些问题和挑战?有什么好的解决办法?
    在实际使用AUTOSARAdaptivePlatform(AP)时,开发者和工程师会面临一系列问题和挑战。以下是一些常见的挑战以及相应的解决办法:主要问题与挑战:学习曲线陡峭:AUTOSARAP的标准和架构复杂,对于没有相关经验的开发者,学习和掌握所需的知识可能需要较长时间。工具链和生态系统的......
  • 【ZeroMQ 】ZeroMQ中inproc优势有哪些?与其它传输协议有哪些不同?
    inproc是ZeroMQ提供的一种传输协议,用于在同一进程内的不同线程之间进行高效的通信。与其他传输协议(如tcp、ipc等)不同,inproc专门针对线程间通信进行了优化,具有极低的延迟和开销。以下是inproc的底层原理和实现细节:1.内存共享inproc的核心原理是内存共享。由于in......
  • 算法定制LiteAIServer烟火识别软件烟火检测算法有哪些优势呢?
    在现代社会,随着人工智能技术的飞速发展,各种智能监控系统在公共安全、工业生产、环境保护等领域得到了广泛应用。其中,烟火检测作为预防火灾的重要手段,其准确性和实时性对于减少火灾损失、保障人民生命财产安全具有重要意义。摄像机实时接入分析平台LiteAIServer作为一款基于人工......
  • 构建AI大模型应用技术栈有哪些?
    摘要:随着人工智能技术的飞速发展,AI大模型已经成为推动各行各业技术革新的关键力量。本文将深入探讨AI大模型的核心技术栈的构建,以及不同技术组件的关键作用。AI大模型应用的核心技术栈各组件的关键作用基于大模型的应用和普通应用的区别01—AI大模型应用的核心技术栈......
  • 【鸿蒙生态崛起,开发者有哪些机遇与挑战?】HarmonyOS NEXT 引领数字化未来
    文章目录前言一、HarmonyOSNEXT特点与升级二、全面突破操作系统核心技术三、鸿蒙生态全面守护用户隐私四、鸿蒙生态的崛起与开发者机遇五、全新鸿蒙生态引领数字化未来小结前言鸿蒙系统不断发展,有与安卓、iOS形成三足鼎立之势,且其在智能手机、智能穿戴、车载、......
  • 【java编程】深入浅出JVM(四):类文件结构
    原创菜菜的后端私房菜Java文件编译成字节码文件后,通过类加载机制到Java虚拟机中,Java虚拟机能够执行所有符合要求的字节码,因此无论什么语言,只要能够编译成符合要求的字节码文件就能够被Java虚拟机执行.Java虚拟机和字节码是语言、平台无关性的基石.本篇文章将深入浅出的解析......