【JVM】JVM调优(基础篇)

一、概述
先来说下JVM调优主要是在调啥?

调优就是调节JVM运行时内存大小+gc垃圾回收细节,要想调整JVM运行时内存大小

需要我们知道JVM内存划分知识以及要想调整gc垃圾回收的细节;

需要我们知道垃圾回收器工作原理以及它们使用的垃圾回收算法;

需要我们知道垃圾回收的一个流程以及调优的基本原则(能在年轻代回收掉的不要留到老年代,减少Full GC 次数);

二、知识点划分
1)JVM内存划分

 


                                                          JVM运行时内存划分图

堆(heap):这块区域主要存放对象的,比如说我们程序中new User()对象它就会被分配到这块区域,这块区域是共享的,也就是所有线程都可以访问该区域的对象,堆也是垃圾回收主要区域。

java虚拟机栈 (vm stack): 这块区域存放我们线程运行时的一些数据,它是每个线程私有的,可以理解为一个线程就对应的着一个java虚拟机栈,它里面就是一个个的栈帧组成的,一个方法就是一个栈帧,栈帧里面有局部变量表,操作数栈,常量池的引用,方法返回地址等;

比如下面这段代码:

public static void main(String[] args) {

        int a=1;

        int b=2;

        int c= a+b;

        System.out.println(c);

        c=0;

}

这段代码就是计算a+b 为c,然后调用println方法打印c的值。

这里面 a,b,c 就在局部变量表中,在算c的时候就是使用的操作数栈算的,然后调用println方法打印c其实就是往java 虚拟机栈 压入一个println 方法的栈帧。

 

println栈帧中会保存着一个返回地址(也就是方法返回地址),当println方法执行完成后,会进行弹栈,然后程序跳到返回地址位置,也就是c=0 位置继续执行。

本地方法栈(native stack):它与java虚拟机栈功能差不多,只不过java虚拟机栈是运行的java方法,而本地方法栈主要是执行的native方法。在hotspot虚拟机中将本地方法栈与java虚拟机栈合二为一。

元数据(Metaspace):这个是java8 的新概念,以前叫方法区,主要是存放着我们的class类信息,我们

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值