JVM内存模型解析

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

Java之所以能够崛起,JVM功不可没。Java虚拟机最初服务于让Java语言凌驾于平台之上,实现“编写一次,到处运行”;而随着时间的推移,JVM经过不同公司和团体以不同方式的实现,逐渐有更多Java以外的语言登上了JVM这条船。本专题介绍了JVM的基础知识、配置以及一些调优问题的解决方法。


提示:以下是本篇文章正文内容,下面案例可供参考

一、JDK和JVM区别

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。在这里插入图片描述

二、JVM模型

1.模型展示

在这里插入图片描述

2.JVM模块讲解

  • 堆:当Eden放满时,会触发young GC,将Eden和存有对象的s0或者s1区同时标记垃圾对象, 并将非垃圾对象存放到空余的s0或者s1区域,
    进入老年代例如:将要s0或者s1区域剩余的非垃圾对象若大于50%则进入老年代;对象的分代年龄等于15;对象的内存分配是大对象存放到老年代等

  • 栈:主要优化点开启逃逸分析和标量替换,更有效的存储对象

  • jvm优化点:主要是减少STW,进而减少young GC 和 full GC

    1.控制堆中老年代和年轻代或者第一电源区和s0/s1区域的比例
    2.设置初始的元空间大小,若不设置会进行收缩和扩展等操作进而产生Full GC
    3.开启对象动态年龄判断机制,老年代空间担保机制
    4.针对不同的内存、需求等条件,设置好符合的垃圾器
    5.使用jinfo 、jmap、jstack、jstat等命令进行查看服务的gc次数等

总结

尽可能让对象在年轻代进行回收,减少非垃圾对象进入老年代,避免老年代频繁产生Full GC

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小阳会武功

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值