java gc 工具_使用jdk自带工具查看gc过程

前言

众所周知,java语言跟c语言最大的一个差别就是内存回收。java语言无需开发者亲自管理内存的分配和回收,而由jvm虚拟机进行内存统一管理。而c语言则需要自行申请内存和归还内存。用一个形象的比喻说明就是,c语言的内存管理像是学校的饭堂,学生就餐完毕需要自己清理桌面和归还餐具,这样的好处就是内存使用完毕后可以及时归还,垃圾内存少,而缺点就是不能保证每一个学生的素质,一旦内存释放不恰当,可能会造成严重后果。java语言的内存管理则像是外面的餐馆,客人就餐完毕离开即可,无需整理餐具,交由清洁工清理,但不好之处在于如果内存清理不及时,会造成后面的客人无法就餐。

java的内存模型图如下(我自己画的,如有不对,帮忙指出):

72384e3b0636

JMM (1).png

使用jdk自带工具查看gc过程

工具路径:C:\Program Files\Java\jdk1.8.0_161\bin\jvisualvm

双击打开,界面如下

72384e3b0636

2020-03-02 144522.png

选择java程序

72384e3b0636

2020-03-02 14452333.png

gc过程(需要安装插件)

72384e3b0636

2020-03-02 1445233.png

72384e3b0636

2020-03-02 14452333.png

用此工具看到的gc过程是一个动态的过程,对象从Eden区产生,Eden区满了后进行一次minor gc,回收Eden区和S1(或者S2)区的垃圾对象,将剩余的对象复制到S2(或者S1)区。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值