当前位置: 首页 > news >正文

金华市网站建设_网站建设公司_响应式开发_seo优化

郑州制作网站的基本流程,360投放广告怎么收费,网站 搜索引擎 提交,网站制作wordpressJava 堆从 GC 的角度还可以细分为: 新生代(Eden 区、From Survivor 区和 To Survivor 区)和老年代。 1. 新生代 是用来存放新生的对象。一般占据堆的 1/3 空间。由于频繁创建对象#xff0c;所以新生代会频繁触发MinorGC 进行垃圾回收。新生代又分为 Eden 区、ServivorFrom、…Java 堆从 GC 的角度还可以细分为: 新生代(Eden 区、From Survivor 区和 To Survivor 区)和老年代。 1. 新生代 是用来存放新生的对象。一般占据堆的 1/3 空间。由于频繁创建对象所以新生代会频繁触发MinorGC 进行垃圾回收。新生代又分为 Eden 区、ServivorFrom、ServivorTo 三个区。 1.1 Eden 区 Java 新对象的出生地如果新创建的对象占用内存很大则直接分配到老年代。当 Eden 区内存不够的时候就会触发 MinorGC对新生代区进行一次垃圾回收。 1.2 ServivorFrom 上一次 GC 的幸存者作为这一次 GC 的被扫描者。 1.3 ServivorTo 保留了一次 MinorGC 过程中的幸存者。 1.4 MinorGC 的过程复制-清空-互换 ​ MinorGC 采用复制算法。 eden、servicorFrom复制到 ServicorTo年龄1 ​ 首先把 Eden 和 ServivorFrom 区域中存活的对象复制到 ServicorTo 区域如果有对象的年龄以及达到了老年的标准则赋值到老年代区同时把这些对象的年龄1如果 ServicorTo 不够位置了就放到老年区 清空 eden、servicorFrom ​ 然后清空 Eden 和 ServicorFrom 中的对象 ServicorTo 和 ServicorFrom 互换 ​ 最后ServicorTo 和 ServicorFrom 互换原 ServicorTo 成为下一次 GC 时的 ServicorFrom区。 2. 老年代 主要存放应用程序中生命周期长的内存对象。 ​ 老年代的对象比较稳定所以 MajorGC 不会频繁执行。在进行 MajorGC 前一般都先进行了一次 MinorGC使得有新生代的对象晋身入老年代导致空间不够用时才触发。当无法找到足够大的连续空间分配给新创建的较大对象时也会提前触发一次 MajorGC 进行垃圾回收腾出空间。 ​ MajorGC 采用标记清除算法首先扫描一次所有老年代标记出存活的对象然后回收没有标记的对象。MajorGC 的耗时比较长因为要扫描再回收。MajorGC 会产生内存碎片为了减少内存损耗我们一般需要进行合并或者标记出来方便下次直接分配。当老年代也满了装不下的时候就会抛出 OOMOut of Memory异常。 3. 永久代 ​ 指内存的永久保存区域主要存放 Class 和 Meta元数据的信息,Class 在被加载的时候被放入永久区域它和和存放实例的区域不同,GC 不会在主程序运行期对永久区域进行清理。所以这也导致了永久代的区域会随着加载的 Class 的增多而胀满最终抛出 OOM 异常。 3.1. JAVA8 与元数据 ​ 在 Java8 中永久代已经被移除被一个称为“元数据区”元空间的区域所取代。元空间的本质和永久代类似元空间与永久代之间最大的区别在于元空间并不在虚拟机中而是使用本地内存。因此默认情况下元空间的大小仅受本地内存限制。类的元数据放入 native memory, 字符串池和类的静态变量放入 java 堆中这样可以加载多少类的元数据就不再由MaxPermSize 控制, 而由系统的实际可用空间来控制。 4.Minor GC、Major GC、Full GC是什么 Minor GC是新生代GC指的是发生在新生代的垃圾收集动作。由于java对象大都是朝生夕死的所以Minor GC非常频繁一般回收速度也比较快。一般采用复制算法回收垃圾Major GC是老年代GC指的是发生在老年代的GC通常执行Major GC会连着Minor GC一起执行。Major GC的速度要比Minor GC慢的多。可采用标记清楚法和标记整理法Full GC是清理整个堆空间包括年轻代和老年代 5. Minor GC、Major GC、Full GC区别及触发条件 Minor GC 触发条件一般为 1eden区满时触发MinorGC。即申请一个对象时发现eden区不够用则触发一次MinorGC。 2新创建的对象大小 Eden所剩空间时触发Minor GC Major GC和Full GC 触发条件一般为 Major GC通常是跟full GC是等价的 1每次晋升到老年代的对象平均大小老年代剩余空间 2MinorGC后存活的对象超过了老年代剩余空间 3永久代空间不足 4执行System.gc() 5CMS GC异常 6堆内存分配很大的对象 6.为什么新生代要分Eden和两个 Survivor 区域 如果没有SurvivorEden区每进行一次Minor GC存活的对象就会被送到老年代。老年代很快被填满触发Major GC.老年代的内存空间远大于新生代进行一次Full GC消耗的时间比Minor GC长得多,所以需要分为Eden和Survivor。 Survivor的存在意义就是减少被送到老年代的对象进而减少Full GC的发生Survivor的预筛选保证只有经历15次Minor GC还能在新生代中存活的对象才会被送到老年代。 设置两个Survivor区最大的好处就是解决了碎片化刚刚新建的对象在Eden中经历一次Minor GCEden中的存活对象就会被移动到第一块survivor space S0Eden被清空等Eden区再满了就再触发一次Minor GCEden和S0中的存活对象又会被复制送入第二块survivor space S1这个过程非常重要因为这种复制算法保证了S1中来自S0和Eden两部分的存活对象占用连续的内存空间避免了碎片化的发生 7.Java堆老年代( Old ) 和新生代 ( Young ) 的默认比例 默认的新生代 ( Young ) 与老年代 ( Old ) 的比例的值为 1:2 ( 该值可以通过参数 –XX:NewRatio 来指定 )即新生代 ( Young ) 1/3 的堆空间大小。老年代 ( Old ) 2/3 的堆空间大小。 其中新生代 ( Young ) 被细分为 Eden 和 两个 Survivor 区域Edem 和俩个Survivor 区域比例是 8 : 1 : 1 ( 可以通过参数 –XX:SurvivorRatio 来设定 ) 但是JVM 每次只会使用 Eden 和其中的一块 Survivor 区域来为对象服务所以无论什么时候总是有一块 Survivor 区域是空闲着的。 jvm相关知识点持续更新中喜欢的话请点赞、收藏、关注哦
http://www.ihoyoo.com/news/28724.html

相关文章:

  • 网站首页图怎么做网站个性化设计
  • 精品课程网站开发平台asp网站例子
  • 成都网站建设方案服务做网站 什么后缀
  • 企业做网站一般要多少钱WordPress上图片加载不出来
  • 广州好蜘蛛网站建设wordpress 分享后下载
  • 响应式网站手机端宣传片制作公司资质
  • 广州学网站开发做生鲜食品最好的网站
  • 房地产网站互动设计公司成功的网站设计
  • 新开传奇网站刚开一秒怎么用visual studio做网站
  • 怀来网站seo网站建设与管理专业介绍
  • 怎么看一个网站是谁做的如何开发一个app建设一个网站
  • 工信部网站黑名单查询软件中心
  • 网站提交百度了经常修改网站网站网站模版
  • 宁波网站设计方案专业网站制作公司招聘
  • 沈阳网站建设方案报价普洱专业企业网站建设
  • 贵州省城乡建设部官方网站做公司网站联系公司
  • 北京摇号网站维护WordPress网站代码修改
  • 西宁网站建设兼职it外包公司是什么意思
  • 外贸平台网站有哪些网站上的信息可以做证据吗
  • 制作网站升上去网站服务器维护技术
  • 网站制作怎样容易如何做电商网站 昆明
  • 网站开发用台式机电脑配置国内app开发公司
  • 综合网站设计深圳保障性住房申请条件
  • php网站建设题目热门网站排名
  • 本地佛山顺德网站设计什么是网络广告营销
  • 网站充值怎么做分录dw网页制作知识点
  • 网站建设个人主要事迹国内做网站大公司有哪些
  • 成都建设银行招聘网站wordpress微信红包
  • 建立网站建设深圳公共资源交易平台
  • 网站seo关键词排名优化wordpress 改模板