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

网站建设推广的10种方法精美个人网站

网站建设推广的10种方法,精美个人网站,wordpress号码,热门推广软件文章目录前言一、如何判断一个对象是否为垃圾#xff1f;1.1、reference count#xff08;引用计数#xff09;1.2、reference count#xff08;引用计数#xff09;存在的问题二、Root Searching#xff08;根可达算法或根搜索算法#xff09;2.1、Root Searching 释义… 文章目录前言一、如何判断一个对象是否为垃圾1.1、reference count引用计数1.2、reference count引用计数存在的问题二、Root Searching根可达算法或根搜索算法2.1、Root Searching 释义2.2、根对象root的类型三、三色标记算法原理与存在的问题3.1、Mark-Sweep标记清除3.1.1、Mark-Sweep标记清除应用原理3.1.2、存在问题-内存碎片化3.2、Copying拷贝3.2.1、Copying拷贝应用原理3.2.2、存在问题-浪费空间3.3、Mark-Compact标记压缩或标记整理3.3.1、Mark-Compact标记压缩或标记整理应用原理3.3.2、存在的问题-效率过低四、垃圾回收器的制定原则4.1、综合三种算法的 GC4.2、新生代里面对象的 age 要取值多少4.3、堆内存逻辑分区介绍适用分代垃圾回收器4.4、为什么年轻代用 Copying拷贝算法4.5、 Copying拷贝算法在年轻代中的具体应用总结前言 本文进入我们进入 JVM 调优系列 2GC 如何判断对象是否为垃圾这个是面试中的高频面试题同时对于 GC 的三色标记算法属于 GC 算法的核心内容我们将通过算法的应用原理进行深度剖析并分析存在的问题由此来得出 GC 的制定机制是什么这里就不再强调重点了因为到处都是重点 一、如何判断一个对象是否为垃圾 1.1、reference count引用计数 查看是否有引用指向该对象有则说明该对象不是垃圾反之就是垃圾。 我们通过下图的引用对象案例来说明。 如上图所示我们可以看到一共是存在四个阶段。 第一阶段有 3 个引用指向该对象那该对象肯定不是垃圾。第二三阶段部分引用消失分别各有 2 个和 3 个引用指向该对象那该对象仍然不是垃圾。第四阶段没有任何引用再指向该对象该对象沦为垃圾。这时垃圾回收器就可以将其回收。 1.2、reference count引用计数存在的问题 当出现循环引用时如下图所示 我们可以看到三个对象各自指向循环中的另一个对象但是没有其他引用指向这三个对象那这三个对象就属于“一堆垃圾”。 那现在我们上面所说的引用计数就不能解决这个该问题这时我们就需要使用另外一种定位方式——Root Searching根可达算法或根搜索算法。 二、Root Searching根可达算法或根搜索算法 2.1、Root Searching 释义 所谓的“根”即是所有的程序都是从 main 方法来运行在 main 方法里面 new 出来的对象即为根对象。 例如在 main 方法里面我们 new 了一个 list 集合在 list 集合中我们又可以存放若干其他对象那我们就称 list 为根对象我们顺着根的数据结构往下走只要存在引用指向的对象那该对象就不是垃圾反之不存在引用的对象那该对象就是垃圾。 如上图所示对象一、二、三、四、五均是存在根对象的引用对象五、六之间是我们上面所提到的循环引用对象八不存在引用故对象六、七、八是垃圾。 2.2、根对象root的类型 根对象不仅仅包括我们上面所说的 main 方法里面的对象属于根对象的还有以下这些 JVM stacknative method stackruntime constant poolstatic references in method areaClazz 三、三色标记算法原理与存在的问题 GC Algorithms 到目前为止一共是有三种我们将一一进行介绍。 Mark-Sweep标记清除Copying拷贝Mark-Compact标记压缩或标记整理 3.1、Mark-Sweep标记清除 3.1.1、Mark-Sweep标记清除应用原理 如上图所示我们将可回收的垃圾对象进行标记定位进行清除即可。将垃圾位变为可用位。 3.1.2、存在问题-内存碎片化 算法比较简单存在缺点长时间的运行内存中会存在大量的碎片碎片化问题。 何为碎片化 由上述得知每一小块可回收内存均需要标记后单独清除在业务量较大频繁更新数据的情况下会有个别的“碎片”长期存在于内存中不去使用占用资源空间。大量的碎片就会造成查询效率极其低下所以我们就需要进行处理。 3.2、Copying拷贝 如果我们不想出现碎片化问题我们就可以考虑使用 Copying拷贝算法。 3.2.1、Copying拷贝应用原理 如上图所示拷贝算法不管内存有多大直接一分为二每次使用仅使用内存的一半在被使用的内存即将用尽时将可以使用的存活对象拷贝到另一半内存中将剩下的可回收的垃圾对象进行回收操作。在另一半内存中进行正常操作如此循环往复。 这种算法每次拷贝完成所有的内存空间都是排列在一起故不会产生碎片化问题。 3.2.2、存在问题-浪费空间 该算法的优势即是它的劣势每次仅可以使用一般的内存空间进行操作相当于浪费了一半的内存空间。 3.3、Mark-Compact标记压缩或标记整理 Mark-Compact标记压缩的优势在于完善了上述两种算法存在的缺点既不存在碎片化问题也不浪费空间。 3.3.1、Mark-Compact标记压缩或标记整理应用原理 把有用的存活对象压缩到内存空间的最前面对可回收的垃圾对象进行处理如上图所示。 3.3.2、存在的问题-效率过低 由于每次在压缩之间都需要计算空间导致回收的效率大大降低。 四、垃圾回收器的制定原则 上述三种标记算法可谓是各有利弊因此在实际应用中一个垃圾回收器的制定是综合了上述三种算法。 4.1、综合三种算法的 GC 如上图所示我们将新诞生的对象存放在新生代里。如果新诞生的对象经历了数次垃圾回收仍然没有被回收掉即每经历一次垃圾回收该对象年龄 1即 age当 age 到达一定数值将该对象置于老年代中进行特殊处理。 4.2、新生代里面对象的 age 要取值多少 这个即是我们进行 JVM 调优所需要的自行调整的根据项目需求来设置。 同时对于年龄的设置与具体所使用的 GC 息息相关。 如果之前没有对 GC 进行调整或调优的话默认使用的 GC 为使用的是 PSPOParallel ScavengeParallel Old默认年龄为 15。如果进行调整之后所使用的 GC 是 CMS那 age 就是 6。如果使用的 GC 是 G1 的话则就彻底与 age 无关因为该 GC 不分代。 4.3、堆内存逻辑分区介绍适用分代垃圾回收器 在 4.1 图中老年代为 tenured。我们将新生代分为三个部分伊甸园区和两个 survivor 区。 伊甸园区即对象诞生的地方存放所有新生的对象与在西方中我们人类诞生的地方——伊甸园想对应。survivor 区幸存者区存放没有在垃圾回收中被回收的对象有两个通常命名为 s0、s1 或者 s1、s2 等叫法。 我们一般在年轻代中使用的 GC 算法为 Copying拷贝老年代中使用的 GC 算法为 Mark-Sweep标记清除和 Mark-Compact标记压缩或标记整理。 4.4、为什么年轻代用 Copying拷贝算法 首先我们先考虑 Mark-Sweep标记清除和 Mark-Compact标记压缩或标记整理上面我们已经说到这两种 GC 算法的缺点分别是产生碎片化问题、内存回收效率低。 程序产生对象后该对象很可能会在很短的时间内被回收根据统计一次垃圾回收可以回收掉 90% 的对象。在这样的情况下使用 Mark-Sweep标记清除和 Mark-Compact标记压缩或标记整理效率就太低了会造成伊甸园区很快爆满或者大规模碎片化而新产生的对象产生放进去的效率就会大大降低。 所以在 JVM 设计中要求年轻代的算法效率是特别高、特别快的。而 Copying拷贝算法的效率是最高的但是浪费了年轻代中至少一半的内存空间。 那我们既要利用好 Copying拷贝算法效率高的优势又要尽量避免内存浪费的问题怎么解决 4.5、 Copying拷贝算法在年轻代中的具体应用 第一次垃圾回收首先将 10% 的幸存对象拷贝到第一个 survivor 中即 s0 中然后将整个伊甸园区进行清除。这时所有有用对象都存放在 s0 中。如下图所示 第二次垃圾回收将伊甸园区中有用的对象拷贝到另一个 survivor 中即 s1 中再将之前 s0 中的对象前提是有用拷贝到 s1 中对伊甸园区与第一个 s0 进行垃圾回收。这时所有有用的对象存放在 s1 中。如下图所示 第三次垃圾回收再次利用 s0将之前存活的对象与伊甸园区中产生的新对象存放在 s0 中对伊甸园区与 s1 进行二垃圾回收。如下图所示 第 n 次垃圾回收如此循环往复利用新生代中的伊甸园区与 survivor 区即可。 总结 在本文中我们通过引用计数和根可达两种算法来判断一个对象是否为垃圾引出在 GC 中的核心——三色标记算法对于三色标记算法的核心和流程进行了深度剖析以及其所存在的问题。三色标记算法又为我们引出 GC 的制定原则GC 对于拷贝算法如何在新生代中运用以提高 JVM 的效率都是重点内容这里就不过分强调了。 我是白鹿一个不懈奋斗的程序猿。望本文能对你有所裨益欢迎大家的一键三连若有其他问题、建议或者补充可以留言在文章下方感谢大家的支持
http://www.zqtcl.cn/news/539789/

相关文章:

  • 西安专业承接网站搭建模板网站聚合页
  • 便宜网站建设加盟推广公司
  • 手机移动端网站怎么做三维建设项目管理网站
  • 如何把网站设为正确建设中广东学校网站建设公司
  • 企业型网站建设怎样收费dw制作网站模板
  • 自适应网站欣赏医联体网站建设
  • 南安市住房和城乡建设部网站微商城网站建设行情
  • 网站开发的前景wordpress倒闭
  • 合肥网站建设网页设计免费推广渠道有哪些方式
  • 广州电力建设有限公司网站按月网站建设
  • 做网站客户会问什么问题手机如何制作网页链接
  • 做足球直播网站wordpress筛选框
  • 做网站需求文档深圳站建在边境
  • 网站建设法规浙江建设信息港证书查询
  • 影视作品网站开发与设计网站建设教程简笔画
  • 自己可以给公司做网站吗网站建设 用ftp上传文件
  • 电子商务网站开发与管理网站建设的设备
  • 网站建设项目公司沈阳网站关键字优化
  • 可以做淘宝联盟的免费网站优质国外网站
  • 石家庄营销型网站建设公司服装公司网站源码
  • 网站开发的软硬件需求做网站盘锦
  • 创意网站建设排行榜python和php哪个做网站
  • 开锁做网站怎么样榆林网站开发公司
  • 松原市建设局网站苏州网站建设-中国互联
  • 标书制作教程视频网站福田祥菱v1单排
  • 点网站出图片怎么做能看人与动物做的网站
  • 免费开源建站系统源码wordpress公共函数在哪里
  • 西昌市建设工程管理局网站模块化网站开发
  • 无限看片的视频大全免费下载上海网络优化方法
  • 物流公司做网站注重什么问题中国建设银行征信中心网站