Java程序运行状态的监控

本文介绍了Java虚拟机(JVM)的内存模型,重点讨论了堆内存的划分,包括新生代、老年代和永久区(在Java 8中已被元空间取代)。详细阐述了垃圾回收(GC)的Minor GC和Major GC过程,并解释了Stop The World现象。同时,文章列举了监控JVM状态的常用命令,如jps、jstat、jinfo和jstack,以及它们的用途和使用示例。
摘要由CSDN通过智能技术生成

JVN的内存模型

在进行GC的时候,不考虑方法区和栈区的部分,因为在java中,垃圾回收主要是针对对象,也就是堆区内存,如上图,堆内存在实际中是分层的;实质上是分为三大块,即新生代(YoungGen)、老年代(Old Memory)、永久区(Perm),新生代又细分为伊甸区(Eden)、生还区(S0、S1),其中伊甸区主要是存放刚诞生的对象(即代码中新new出的对象),S1,S2主要存放新生代经过垃圾清理后存活的对象;

注:这里用的是老图,永久区(Perm)在Java8已经被取缔了

2|0垃圾回收的过程

垃圾回收即GC,主要分为两种,一种为Minor GC,也叫YGC,是最频繁的GC,发生在新生代,Java应用在运行过程中会大量的创建对象,这些对象可能用完即销毁,所以基本在新生代就被回收了。另一种称为Major GC,主要发生在老年代;还有一个含糊不定的概念,即FullGC,大众理解的话,当老年代也满了,则会对整个堆内存进行全量的回收。但是实际情况中,我们主要看的是gc.log

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值