首页 > 系统相关 >jvm内存模型

jvm内存模型

时间:2023-01-06 15:36:54浏览次数:44  
标签:eden 模型 回收 gc 内存 jvm 线程 年代 垃圾

          老年代 2/3
堆      new 新对象
          新年代 1/3 eden 8/10 survior s0 1/10 s1 1/10
栈      先进后出 线程运行 就会分配一个栈帧内存空间 放该方法中得局部变量

栈帧   局部变量表 操作数栈 动态连接 方法出口

程序计数器 : 存的是马上执行的那行代码的内存地址 由来:当多线程时 其他线程cpu时间片大于该线程 为了记录该线程执行的位置 下次直接执行
: 如何动态修改程序计数器
方法区 存常量 静态变量 类信息

本地方法栈

gc垃圾回收机制
可达性分析算法
1.先找gc roots根节点 比如静态变量 局部变量
2.在从堆中找到该节点,在找所有引用到该节点的对象 标记为非垃圾数据,其他标记为垃圾对象
3.将非垃圾数据由eden区复制到serve s0中 ,其他垃圾数据直接删除 分代年龄+1
4.当eden中内存又满了 再次执行minor gc (minor gc算法是回收整个年轻代 只要有对象就会回收)
5.如果survior中的还存活 放入s1中 将eden 存活的也放在s1中 分代年龄+1 其他区中垃圾全部回收
6.当年龄达到15时 放到老年代中
7.老年代满了之后 触发full gc (回收整个老年代和年轻代)
进入老年代的方法
1.通过15次的minor gc回收机制未被回收
2.当survior区放不下直接放入老年代
oom 内存泄露
     当老年代的数据存满且都为非垃圾数据 并且还一直复制新数据进入老年代

stw
stop the word
   当触发 gc 时会触发 stw 机制 :会使用户暂时暂停业务 jvm 调忧就是减少 full gc 从而使用户的体验更好 不在卡顿

 

标签:eden,模型,回收,gc,内存,jvm,线程,年代,垃圾
From: https://www.cnblogs.com/tommiao/p/17030585.html

相关文章

  • 三维模型转换成CAD三维模型
                  ......
  • windows下gradle下使用windows版普罗米修斯prometheus和metrics简单的制作一个监控jav
    1.引入依赖(如果是maven可以自行翻译):例如:compile'io.prometheus:simpleclient_hotspot:0.5.0'groupid为io.prometheusartifactid为......
  • idea 内存参数修改不生效问题解决 VM参数设置不生效解决
    提示:在idea的工具栏Help->EditCustomVMOptions内修改 对应参数-Xmx1024m后重启无效的再看下面的方法 问题:ieda的默认内存大小是1024M当我开多个工......
  • 第2题- JDK&JRE&JVM
    文章目录​​JDK&JRE&JVM​​​​JDK​​​​JRE​​​​JVM​​​​关系​​JDK&JRE&JVMJDKJavaDevelopmentKit,Java开发工具包。JREJavaRuntimeEnvironment,Jav......
  • .Net 7 内存模型函数描述结构MethoDesc
    楔子讲一些CLR里面的内存模型。本篇MethodDesc,意为函数的描述之意,看下一个函数在CLR里面是如何被描述的。MethodDesc结构这个结构体在CLR里面高达1600多行,这里仅截取......
  • Unity URP Shader之各向异性头发高光之KK高光模型
    首先声明以下素材和shader代码都来自Kerry佬,我只做整理和学习之用,写此随笔是为了做个笔记方便以后查阅。 关于各向异性头发高光,效果可参考:  首先弄清以下知识点:1.......
  • 模型驱动设计的构造块(下)——DDD
    3.领域对象的生命周期每个对象都有生命周期,如下图所示。对象自创建后,可能会经历各种不同的状态,直至最终消亡——要么存档,要么删除。当然很多对象是简单的临时对象,仅......
  • 领域模型设计粗讲
    1、领域概念领域模型:领域内的关键的概念、概念之间的关系领域模型是概念模型领域模型描述的是现实世界的事物和他们之间的关系领域模型和软件无关,反映的是问题空间的......
  • 1009.Django模型基础04
    一、数据库数据渲染到模板二、案例的功能介绍博客小案例功能介绍:主页index.html-------------->展示添加博客和博客列表的文字,实现页面跳转添加页add.html----------......
  • 1008.Django模型基础03
    一、关系表的数据操作关系表中的数据操作查看数据库中的表结构   一对多表关系数据的添加:1.第一种方式就是跟之前一样,用传参的方法添加,需要注意的是外键的值必......