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

未成年做网站沈阳网站seo排名

未成年做网站,沈阳网站seo排名,icp备案网站接入信息,线上编程一、判断对象是否可以回收 垃圾收集器在做垃圾回收的时候#xff0c;首先需要判定的就是哪些内存是需要被回收 的#xff0c;哪些对象是「存活」的#xff0c;是不可以被回收的#xff1b;哪些对象已经「死掉」了#xff0c;需 要被回收。 一般有两种方法来判断#xff…一、判断对象是否可以回收 垃圾收集器在做垃圾回收的时候首先需要判定的就是哪些内存是需要被回收 的哪些对象是「存活」的是不可以被回收的哪些对象已经「死掉」了需 要被回收。 一般有两种方法来判断 引用计数器法为每个对象创建一个引用计数有对象引用时计数器 1引用被释放时计数 -1当计数器为 0 时就可以被回收。它有一个缺点不能解决循环引用的问题 可达性分析算法从 GC Roots 开始向下搜索搜索所走过的路径称为引用链。 当一个对象到 GC Roots 没有任何引用链相连时则证明此对象是可以被回收的。 二、堆空间分配年轻代老年代及对应回收算法 堆主要用于存放各种类的实例对象和数组。在java中被分为两个区域年轻代和老年代。  年轻代和老年代的划分是为了更好的内存分派及回收。提高效率。堆是垃圾回收机制的重点区域。我们知道垃圾回收机制有三种minor gcmajor gc 和full gc。针对于堆的就是前两种。年轻代的叫 minor gc老年代的叫major gc。  1. 年轻代 年轻代中存在的对象是死亡非常快的存在朝生夕死的情况。尺寸随堆大小的增加和减少而相应的变化默认值是保持为堆的1/15。所以为了提高年轻代的垃圾回收效率又将年轻代划分为三个区域 Eden区、SurvivorFrom区、SurvivorTo区。 eden和survivor默认比例是8:1:1进行垃圾回收采用的是分代复制算法优点是避免内存碎片。新创建的对象都会被分配到Eden区(如果该对象占用内存非常大则直接分配到老年代区)当Eden区内存不够的时候就会触发MinorGCSurvivor满不会引发MinorGC而是将对象移动到老年代中 每次新生代的使用会是eden区和一块survivor区。当我们进行垃圾回收的时候清除正在使用的区域将其中的存货对象放入到另一个survivor区域并进行整理保证空间的连续。如果对象长时间存活则将对象移动到老年区。“From”区和“To”区互换角色原Survivor To成为下一次GC时的Survivor From区, 总之GC后都会保证Survivor To区是空的。存活下来的对象他的年龄会增长1。当对象的年龄一次次存活一次次增长到达15的时候这些对象就会移步到老年代。在年轻代执行gc的时候如果老年代的连续空间小于新生代对象的总大小就会触发一次full gc。是为了给新生代做担保保证新生代的老年对象可以顺利的进入到老年代的内存区。 2. 老年代 随着Minor GC的持续进行老年代中对象年龄大于15的对象也会持续增长导致老年代的空间也会不够用最终会执行Major GC或full gcMajorGC 的速度比 Minor GC 慢很多很多据说10倍左右full gc会包含年轻代的gc。但老年代只要执行gc就一定是full gc。full gc使用的算法是标记清除回收算法或标记压缩算法。 标记无用对象然后进行清除回收。 标记-清除算法Mark-Sweep是一种常见的基础垃圾收集算法当进行标记清除时会停止整个程序stop the world它将垃圾收集分为两个阶段 标记阶段从根节点开始遍历标记所有被引用的对象一般在对象的header中标记为可达对象。 清除阶段collector对堆内存从头到尾进行线性遍历如果发现某个对象的header没有标记为可达对象则回收 。这里的回收是把对象的地址保存在空闲的地址列表中内存分配下次对象需要加载时判断垃圾的位置空间是否够如果够就存放覆盖原有的地址。 优点实现简单不需要对象进行移动。 缺点标记、清除过程效率低产生大量不连续的内存碎片提高了垃圾回收的频率。  3. 永久代元空间 在Java8中永久代已经被移除被一个称为“元数据区”元空间Metaspace的区域所取代。 值得注意的是元空间并不在虚拟机中而是使用本地内存之前永久代是在jvm中。这样解决了以前永久代的OOM问题元数据和class对象存在永久代中容易出现性能问题和内存溢出毕竟是和老年代共享堆空间。java8后永久代升级为元空间独立后也降低了老年代GC的复杂度。 元空间也是对java虚拟机的方法区的一种实现。元空间与永久代最大的区别在于元空间不在虚拟机中使用本地内存。通过配置如下参数可以更改元空间的大小。         -XX:MetaspaceSize初始空间的大小。达到该值就会触发垃圾收集进行类型卸载同时GC会对该值进行调整如果释放了大量的空间就适当降低该值如果释放了很少的空间那么在不超过MaxMetaspaceSize时适当提高该值。         -XX:MaxMetaspaceSize最大空间默认是没有限制的。 永久代的回收会随着full gc进行移动消耗性能。每种类型的垃圾回收都需要特殊处理元数据。将元数据剥离出来简化了垃圾收集提高了效率。 三、其他垃圾回收算法 1. 复制算法年轻代使用 为了解决标记-清除算法的效率不高的问题产生了复制算法。它把内存空间划为两个相等的区域每次只使用其中一个区域。垃圾收集时遍历当前使用的区域把存活对象复制到另外一个区域中最后将当前使用的区域的可回收的对象进行回收。 优点按顺序分配内存即可实现简单、运行高效不用考虑内存碎片。 缺点可用的内存大小缩小为原来的一半对象存活率高时会频繁进行复制。 2. 标记-整理算法标记压缩算法 在新生代中可以使用复制算法但是在老年代就不能选择复制算法了因为老年代的对象存活率会较高这样会有较多的复制操作导致效率变低。标记-清除算法可以应用在老年代中但是它效率不高在内存回收后容易产生大量内存碎 片。因此就出现了一种标记-整理算法Mark-Compact算法与标记-清除算法不同的是在标记可回收的对象后将所有存活的对象压缩到内存的一端使他们紧凑的排列在一起然后对端边界以外的内存进行回收。回收后已用和未用的内存都各自一边。 优点解决了标记-清理算法存在的内存碎片问题。 缺点仍需要进行局部对象移动一定程度上降低了效率。 参考 JVM年轻代老年代永久代详解 - 经典鸡翅 - 博客园 (cnblogs.com) jvm之年轻代新生代、老年代、永久代以及GC原理详解_老年代空间多大-CSDN博客
http://www.hkea.cn/news/14324578/

相关文章:

  • 增光路网站建设网站的建设公司哪家好
  • 网站更换服务器 备案在哪个网站里下载的图片可以做展架
  • 网站开发外包潍坊哪里做网站
  • 电影院网站建设方案旅游网站的设计方案怎么做
  • php网站开发岗位要求友情链接模板
  • 游戏开发 网站开发实训百度搜索引擎的总结
  • 合肥建设局网站领导建设好的网站
  • 西安网站开发外包做视频网站需要哪些技术
  • 投资网站网站源码企业网络建设公司排名
  • 安福县住房和城乡建设局网站广告设计公司归哪个单位管
  • 化妆品网站建设规模设想网络seo
  • 网站字体大小选择网页制作方法视频教程
  • 公司做网站的费用怎么入账乐清住房和城乡建设部网站官网
  • 购物网站支付页面制作广州平面设计线下培训班
  • 手机网站是用什么开发的著名室内设计师
  • 优酷视频网站源码成都网页制作培训机构
  • 网站建设培训 店中国有限公司官网
  • 怎么给网站加友情链接wordpress添加赏
  • 商城网站建设明细wordpress中医主题
  • 各种网站建设报价直流分公司四川建设部网站
  • 怎么可以创建网站支付宝是哪个公司的
  • 没有网站怎么做cpsppt图标网站链接怎么做
  • 泉州网站wordpress 互动性
  • 哪个网站做处理货如何注册WordPress账户
  • wordpress网站数据wordpress默认头像不显示
  • 网站出现弹窗如何给网站做seo
  • 装修公司网站如何做网络推广兰州网站建设公司有哪些
  • wordpress今天更新文章数重庆主城优化网站建设
  • 交易猫假网站制作建设工程合同主体有哪些
  • 好的案例展示网站无锡做网站多少钱