压力测试&性能监控

压力测试 & 性能监控

性能监控

jvm 内存模型

image-20200630224423331

  • 程序计数器Program Counter Register:
    • 记录的是正在执行的 虛拟机字节码指令的地址,
    • 此内存区域是唯一个在 JAVA虚拟机规范中没有规定任何OutOfMemoryError的区域
  • 虚拟机: VMStack
    • 描述的是 JAVA方法执行的内存模型,每个方法在执行的时候都会创建一一个栈帧,用于存储局部变量表,操作数栈,动态链接,方法接口等信息
    • 局部变量表存储了 编译期可知的各种基本数据类型、对象引用
    • 线程请求的栈深度不够会报StackOverflowError异常
    • 栈动态扩 展的容量不够会报OutOfMemoryError异常
    • 虚拟机栈是线程隔离的,即每个线程都有自己独立的虚拟机栈
  • 本地方法: Native Stack
    • 本地方法栈类似于虚拟机栈,只不过本地方法栈使用的是本地方法
  • 堆:Heap(优化的重点)
    • 几乎 所有的对象实例都在堆上分配内存优化重点

image-20200630225055907

堆(deep)

所有的对象实例以及数组都要在堆上分配。堆是垃圾收集器管理的主要区域,也被称为“GC堆”; 也是我们优化最多考虑的地方。
堆可以细分为:

  • 新生代
    • Eden空间 (伊甸园区)
    • From Survivor空间(幸存者区)
    • To Survivor空间
  • 老年代
  • 永久代/元空间
    • Java8以前永久代受jvm管理,java8 以后元空间,直接使用物理内存。因此,默认情况下,元空间的大小仅受本地内存限制。

垃圾回收

image-20200630225343378

从Java8开始,HotSpot已经完全将永久代(Permanent Generation)移除,取而代之的是一个新的区域一元空间(MetaSpace)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值