【JVM】JVM 调优的参数都有哪些?

文章目录

    • [1. 设置堆空间大小](#1. 设置堆空间大小)
    • [2. 虚拟机栈的设置](#2. 虚拟机栈的设置)
    • [3. 年轻代中Eden区和两个Survivor区的大小比例](#3. 年轻代中Eden区和两个Survivor区的大小比例)
    • [4. 年轻代晋升老年代阈值](#4. 年轻代晋升老年代阈值)
    • [5. 设置垃圾回收收集器](#5. 设置垃圾回收收集器)

1. 设置堆空间大小

设置堆的初始大小和最大大小,为了防止垃圾收集器在初始大小、最大大小之间收缩堆而产生额外的时间,通常把最大、初始大小设置为相同的值


堆空间设置多少合适?

最大大小的默认值是物理内存的1/4,初始大小是物理内存的1/64
堆太小,可能会频繁的导致年轻代和老年代的垃圾回收,会产生stw,暂停用户线程
堆内存大肯定是好的,存在风险,假如发生了fullgc,它会扫描整个堆空间,暂停用户线程的时间长
设置参考推荐:尽量大,也要考察一下当前计算机其他程序的内存使用情况

2. 虚拟机栈的设置

虚拟机栈的设置:每个线程默认会开启1M的内存,用于存放栈帧、调用参数、局部变量等,但一般256K就够用。通常减少每个线程的堆栈,可以产生更多的线程,但这实际上还受限于操作系统。

3. 年轻代中Eden区和两个Survivor区的大小比例

设置年轻代中Eden区和两个Survivor区的大小比例。该值如果不设置,则默认比例为8:1:1。通过增大Eden区的大小,来减少YGC发生的次数,但有时我们发现,虽然次数减少了,但Eden区满的时候,由于占用的空间较大,导致释放缓慢,此时STW的时间较长,因此需要按照程序情况去调优。

4. 年轻代晋升老年代阈值

5. 设置垃圾回收收集器

相关推荐
小江的记录本2 小时前
【JVM虚拟机】垃圾回收GC:垃圾收集器:CMS:核心原理、回收流程、优缺点、废弃原因(附《思维导图》+《面试高频考点清单》)
java·jvm·后端·python·spring·面试·maven
小江的记录本4 小时前
【JVM虚拟机】垃圾回收GC:垃圾回收算法:标记-清除、标记-复制、标记-整理、分代收集(附《思维导图》+《面试高频考点清单》)
java·jvm·后端·python·算法·安全·面试
小江的记录本4 小时前
【JVM虚拟机】垃圾回收GC:垃圾收集器:G1:Region分区、Mixed GC、回收流程、适用场景(高频)(附《思维导图》+《面试高频考点清单》)
java·jvm·后端·python·spring·spring cloud·面试
ID_180079054738 小时前
小红书评论 API 接口详解与实战开发
java·jvm·c++
東雪木10 小时前
JVM 与 Java 内存模型 专属复习笔记
java·jvm·笔记·java面试
Undergoer_TW13 小时前
Colmap 进军嵌入式:SQLite 数据库从崩溃退出到自动治愈
jvm·数据库·sqlite
骄马之死14 小时前
ThreadLocal 核心原理
java·jvm·算法
一只小白00014 小时前
【JVM | 第二篇】—— 类加载器 & 双亲委派模型
jvm
Nyarlathotep011314 小时前
自动内存管理(3):HotSpot中垃圾收集的实现
jvm·后端
仍然.15 小时前
浅谈JVM
jvm