首页 > 其他分享 >常用的JVM调优参数和应用场景

常用的JVM调优参数和应用场景

时间:2024-09-23 11:36:31浏览次数:1  
标签:场景 JVM 示例 新生代 XX 调优 GC 设置

常见的JVM调优参数和应用场景         

 

   概要 

   JVM调优可以显著提升Java应用程序的性能。以下是一些常用的JVM参数和应用场景的介绍。

   一、堆内存设置

   -Xms<size> 和 -Xmx<size>:设置初始堆大小和最大堆大小。

   1.  -Xms<size>

   初始化时的堆大小。设置得大一些可以避免频繁动态扩展堆。

   2. -Xmx<size>

   设置堆内存的最大值。设置的太小可能导致 OutOfMemoryError,设置的太大可能导致 GC 时间过长。

   示例:-Xms512m -Xmx4g

   这表示堆的初始大小为 512 MB,最大可以扩展到 4 GB。

   二、新生代和老年代设置

   1. -Xmn<size>

   设置新生代大小。通常建议新生代占总堆的1/3,这样可以提高新生代GC的效率。

   示例:-Xmn1g,表示年轻代大小为1 GB。

   2. -XX:NewRatio=<ratio>

   设置新生代和老年代的比例。这个比例决定了JVM在堆内存中为年轻代和老年代分配的内存大小。

   示例:

   -XX:NewRatio=2:表示年轻代与老年代的比例为1:2(新生代占总堆内存的1/3)。

   -XX:NewRatio=4:表示年轻代与老年代的比例为1:4(新生代占总堆内存的1/5),适合对象存活时间较长的场景。

   三、垃圾回收相关参数

   1.  -XX:+UseParallelGC

   用于选择适合应用场景的垃圾回收器。

   使用 Parallel GC(并行垃圾收集器),这是 JDK 1.8 的默认垃圾收集器,适合高吞吐量应用。

   使用其他垃圾收集器,示例:

   -XX:+UseSerialGC:使用串行垃圾回收器。
   -XX:+UseG1GC:使用G1垃圾回收器。

   2. -XX:MaxGCPauseMillis=<time>

   设置GC最大暂停时间。帮助控制应用的响应时间。

   示例:-XX:MaxGCPauseMillis=200,表示最大GC暂停时间为200毫秒。

   3. -XX:GCTimeRatio=<ratio>

  设置垃圾回收占总运行时间的比例。默认值是99,表示允许1%的时间用于GC,适合希望优化吞吐量的场景。

   示例:-XX:GCTimeRatio=19,允许19%的时间用于GC。

   4. -XX:MaxTenuringThreshold=<value>

   设置对象从新生代晋升到老年代的年龄阈值。适合调节对象的存活时间,影响GC频率和性能。

   示例:-XX:MaxTenuringThreshold=15,表示对象在新生代存活15次后才会晋升到老年代。

   五、线程栈大小

   -Xss<size>

   设置每个线程的栈大小。栈用于存储方法的局部变量、操作数栈、动态链接和返回地址。较大的栈大小可以支持更深的递归,但会消耗更多的内存。

   六、类加载设置

   -XX:PermSize=<size>:设置永久代的初始大小(对于较旧的JVM)

   -XX:MaxPermSize=<size>:设置永久代的最大大小。


7.调试和监控参数

-XX:+PrintGCDetails:打印详细的GC信息。
-XX:+PrintGCTimeStamps:在GC日志中添加时间戳。
-XX:+HeapDumpOnOutOfMemoryError:在发生内存溢出时生成堆转储文件。

标签:场景,JVM,示例,新生代,XX,调优,GC,设置
From: https://www.cnblogs.com/hld123/p/18426770

相关文章

  • 人像评测测试用例典型场景
    在**人像评测**中,通常会针对拍摄人像时的设备表现进行一系列实际场景测试。目的是评估设备在不同条件下拍摄人像的能力,包括细节、色彩、光线处理等方面。以下是一些典型的**人像评测场景用例**:###1.**自然光下的室外拍摄**-**场景描述**:测试在白天的自然光条件下设备的人像拍......
  • 场景初始化
    获取初始化的元素//常规consttargetdom = document.getElementById('targetdom')//vue3consttargetdom = ref('targetdom')//reactconsttargetdom = ref('targetdom')初始化相机、场景、光源、renderconstcamera=newThree.PerspectiveCamera(......
  • 二叉搜索树(BSTree)原理及应用场景
    目录引言二叉搜索树的基本概念常见算法插入节点查找节点删除节点二叉搜索树的应用场景1.数据库索引2.符号表3.字典和词汇表4.动态集合结论引言二叉搜索树(BinarySearchTree,BST)是一种特殊的二叉树,其每个节点的值都大于其左子树中的所有节点的值,同时小于......
  • 【解决方案】Java 互联网项目中常见的 Redis 缓存应用场景
    目录前言一、常见key-value二、时效性强三、计数器相关四、高实时性五、排行榜系列六、文章小结前言在笔者3年的Java一线开发经历中,尤其是一些移动端、用户量大的互联网项目,经常会使用到Redis作为缓存中间件的基本工具来解决一些特定的问题。下面是笔者总结梳理的一些常......
  • Hive企业级调优[7]——HQL语法优化之小文件合并
    目录HQL语法优化之小文件合并 优化说明 Map端输入文件合并Reduce端输出文件合并优化案例HQL语法优化之小文件合并 优化说明小文件合并优化主要分为两个方面:Map端输入的小文件合并以及Reduce端输出的小文件合并。 Map端输入文件合并合并Map端输入的小文件意味着......
  • Hive企业级调优[8]—— 其他优化
    目录 其他优化CBO优化 优化说明 优化案例 谓词下推 优化说明 优化案例 矢量化查询Fetch抓取 本地模式优化说明 优化案例并行执行 严格模式 其他优化CBO优化 优化说明CBO(CostBasedOptimizer),即基于成本的优化。在Hive中,成本模型考虑到了数据的......
  • 全面指南:使用JMeter进行性能压测与性能优化(中间件压测、数据库压测、分布式集群压测、
    目录一、性能测试的指标1、并发量2、响应时间3、错误率4、吞吐量5、资源使用率二、压测全流程三、其他注意点1、并发和吞吐量的关系2、并发和线程的关系四、调优及分布式集群压测(待仔细学习)1.线程数量超过单机承载能力时的解决方案2.如何搭建分布式集群3.实施......
  • Android轻量级RTSP服务使用场景分析和设计探讨
    技术背景好多开发者,对我们Android平台轻量级RTSP服务模块有些陌生,不知道这个模块具体适用于怎样的场景,有什么优缺点,实际上,我们的Android平台轻量级RTSP服务模块更适用于内网环境下、对并发要求不高的场景,实现低成本、低延迟的音视频实时传输。本文就上述问题,做个技术探讨,先说......
  • JVM基础知识(二)Java内存模型
    java线程之可见性volatile不需要加锁,比synchronized更轻量级,不会阻塞线程;从内存可见性角度看,volatile读相当于加锁,volatile写相当于解锁。synchronized既能保证可见性,又能保证原子性;volatile只能保证可见性,无法保证原子性。同步退出同步块->释放监视器->刷......
  • 【多线程面试题】涵盖三个常见的场景
    1.多线程轮流打印数字最简单的代码题,使用两种加锁方式,sychronized和ReentranLocksychronizedpublicclassMain{privatestaticfinalObjectlock=newObject();privatestaticintnum=100;privatestaticintcnt=0;publicstaticvoidm......