JVM调优

JDK体系结构

JDK体系结构

Java编译运行过程

Java编译运行过程

Java内存模型

Java内存模型

堆结构和垃圾搜集过程堆结构和垃圾搜集过程
  1. new 出来的对象都会往 Eden(伊甸)区放 然后满了 会进行minor gc
  2. 存活的放到s0中
  3. 再次满了 再次搜集s0和Eden存活对象 放到s1中
  4. …s1,eden–>s0 不断调换
  5. 年龄到达15的或大对象 进入老年区
  6. 老年区满了 会启动full gc 启动full gc时候必须暂停所有执行的代码也就是STW(stop the world) 因为我们的对象必须要有一个确定的状态 不暂停的话就无法确定

可达性分析(minor GC、full GC)

GC Roots根节点:线程栈的本地变量、静态变量、本地方法栈的变量等

JVM调优

JVM调优的目的:减少GC

图像化查看jvm进程

jvisualvm # Visual GC

Linux调优工具

阿里Arthas

curl -O http://arthas.aliyun.com/arthas-boot.jar
java -jar arthas-boot.jar
dashboard # 查看整个进程的运行情况,线程、内存、GC、运行环境
thread # 查看线程详细情况
thread 1 # 选择进程序号1,进入进程信息操作
jad 类名 # 查看运行的代码

进阶使用

调整性能时,JM有三个组件

  • 堆大小调整
  • 垃圾收集器调整
  • JIT编译器调整

参数调优

java -Xms3G -Xmx3G -Xss1M -XX:MetaspaceSize=512 -XX:MaxMetaspaceSize=512M -jar microservice-eureka-server.jar
  • -Xms:初始内存,此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存
  • -Xmx:最大可用内存
  • -Xmn:设置年轻代大小
  • -Xss:每个线程的堆栈大小
  • -XX:NewRatio:设置年轻代(包括Eden和两个Survivor区)与年老代的比值(除去持久代)
  • -XX:SurvivorRatio:设置年轻代中Eden区与Survivor区的大小比值
垃圾回收器

垃圾回收期
参考资料:

JVM优化 提取码:dsqk

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值