Java的JVM内存模型小记

前两天参加了网络安全创新大会,加上昨晚在b站看张博大佬直播修fastjson的bug,趁着这两天项目结束闲下来了,重新探索了一下jvm相关的一些知识,感觉挺有意思的。上午使用jps,jstat,jmap等命令玩了一阵子,发现虽然可以达到效果但是命令行的数据化可读性很差,今天下午终于get到了一个不错的工具jconsole.exe,可以提供可视化的JVM先关的数据监控和管理。

其实java本身是提供了很多工具给我们使用的,但是大部分情况大家只会用java和javac的命令,实际上在java的bin目录下还有很多小工具值得大家去探索。本篇的目的就是记录一下今天使用jconsole引发我的一系列探索。以下是我们熟知的jvm内存模型,就在查看时我发现了一个问题:

项目中的程序堆内存大小为700M,但是新生代中Eden和survicor的比例并不是8:1:1,而是30:1:1,并且新生代和老年代的比例也不是1:2,而是10:1,然后我就去看了一下VM的参数,发现也并没有特别指定的堆各个区域的大小,很奇怪。求大佬解答

之前一直看的那版jvm书籍版本比较老,并没有以jdk8为基准讲解。今天在这里还是验证了很多看到的书籍资料博客的知识的,比如jdk8移除了永久代PermGen,到元空间(Metaspce)中去了。jdk默认使用的垃圾收集器是PS MarkSweep收集老年代,PS Scavenge收集新生代,而不是G1收集器。这里查了一些资料,oracle是从java9开始使用G1作为默认垃圾收集器的。GC传送门

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值