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

房地产 网站 设计制作旅游网页网站开发的目的和意义

房地产 网站 设计制作,旅游网页网站开发的目的和意义,网站设计与制作的流程,石家庄网站建设全包目录 引言 GC的作用域 什么是垃圾回收#xff1f; 常见的GC算法 1.引用计数法 2.复制算法 3.标记清除 4.标记整理 小总结 5.分代收集算法 ps:可达性分析算法#xff1f; 可达性分析的作用 可达性分析与垃圾回收算法的关系 结论 引言 在编程世界中#xff0c;…目录 引言 GC的作用域 什么是垃圾回收 常见的GC算法 1.引用计数法 2.复制算法 3.标记清除 4.标记整理 小总结 5.分代收集算法 ps:可达性分析算法 可达性分析的作用 可达性分析与垃圾回收算法的关系 结论 引言 在编程世界中内存管理是一个至关重要的话题。对于使用自动内存管理的语言如Java、Python、Go等垃圾回收Garbage Collection, GC机制是确保程序高效运行的关键。本文将介绍垃圾回收的基本概念并详细讲解四种常见的垃圾回收算法。 GC的作用域 记住GC口诀 分代收集算法 次数频繁Young区次数较少Old区基本不动Perm永久区区 什么是垃圾回收 垃圾回收是一种自动内存管理机制用于识别和释放不再被程序使用的内存。其主要目的是防止内存泄漏减少程序员手动管理内存的负担并提高程序的稳定性和性能。 先看下一个对象的历程 JVM 在进行GC时并非每次都对上面三个内存区域一起回收的大部分时候回收的都是指新生代 因此GC按照回收的区域又分了两种类型一种是普通的GCminor GC一种是全局GC major GC or Full GC 普通GC轻GC只针对新生代区域的GC 全局GC重GC针对老年代的GC偶尔伴随对新生代的GC以及对永久代的GC 常见的GC算法 1.引用计数法 每个对象有一个引用计数器当对象被引用一次则计数器加1当对象引用失效一次则计数器减1对 于计数器为0的对象意味着是垃圾对象可以被GC回收。 2.复制算法 年轻代中使用的是Minor GC采用的就是复制算法 Minor GC 会把Eden中的所有活的对象都移到Survivor区域中如果Survivor区中放不下那么剩下的 活的对象就被移动到Old generation中也就是说一旦收集后Eden就是变成空的了 当对象在Eden包括一个Survivor区域这里假设是From区域出生后在经过一次Minor GC后如 果对象还存活并且能够被另外一块Survivor区域所容纳 上面已经假设为from区域这里应为to区 域即to区域有足够的内存空间来存储Eden 和 From 区域中存活的对象则使用复制算法将这些仍然 还活着的对象复制到另外一块Survivor区域即 to 区域中然后清理所使用过的Eden 以及Survivor 区域即form区域并且将这些对象的年龄设置为1以后对象在Survivor区每熬过一次Minor GC就将这个对象的年龄 1当这个对象的年龄达到某一个值的时候默认是15岁通过 XX:MaxTenuringThreshold 设定参数这些对象就会成为老年代。 -XX:MaxTenuringThreshold  任期门槛设置对象在新生代中存活的次数 面试题如何判断哪个是to区呢一句话谁空谁是to 工作原理 将内存分为两个相等的区域From空间和To空间。 复制阶段从From空间复制所有存活对象到To空间。 清理阶段清空From空间然后交换From和To空间的角色。 优点 简单高效没有内存碎片问题。 缺点 需要双倍内存空间适用于存活对象较少的情况。 3.标记清除 说明老年代一般是由标记清除或者是标记清除与标记整理的混合实现 什么是标记清除 回收时对需要存活的对象进行标记 回收不是绿色的对象 当堆中的有效内存空间被耗尽的时候就会停止整个程序也被称为stop the world然后进行两项 工作第一项则是标记第二项则是清除。 标记从引用根节点开始标记所有被引用的对象标记的过程其实就是遍历所有的GC Roots 然后将所 有GC Roots 可达的对象标记为存活的对象。 清除 遍历整个堆把未标记的对象清除。 缺点这个算法需要暂停整个应用会产生内存碎片。 工作原理 标记阶段从根对象如全局变量、栈中的对象出发遍历所有可达对象并标记它们为存活。 清除阶段遍历整个堆内存释放未被标记的对象所占用的内存。 优点 实现简单适用于大多数场景。 缺点 会产生内存碎片可能导致后续内存分配效率降低。 4.标记整理 在整理压缩阶段不再对标记的对象作回收而是通过所有存活对象都像一端移动然后直接清除边界 以外的内存。可以看到标记的存活对象将会被整理按照内存地址依次排列而未被标记的内存会被 清理掉如此一来当我们需要给新对象分配内存时JVM只需要持有一个内存的起始地址即可这比 维护一个空闲列表显然少了许多开销。 标记、整理算法不仅可以弥补 标记、清除算法当中内存区域分散的缺点也消除了复制算法当中内 存减半的高额代价 工作原理 标记阶段与标记-清除算法相同标记所有存活对象。 整理阶段将所有存活对象移动到内存的一端然后清理边界以外的内存。 优点 解决了内存碎片问题提高了内存利用率。 缺点 整理阶段需要移动对象增加了时间开销。 小总结 内存效率复制算法 标记清除算法 标记整理算法 时间复杂度 内存整齐度复制算法 标记整理算法 标记清除算法 内存利用率标记整理算法 标记清除算法 复制算法 可以看出效率上来说复制算法是当之无愧的老大但是却浪费了太多内存而为了尽量兼顾上面所提到的三个指标标记整理算法相对来说更平滑一些 但是效率上依然不尽如人意它比复制算法多了 一个标记的阶段又比标记清除多了一个整理内存的过程 难道就没有一种最优算法吗猜猜看下面还有 答案 无没有最好的算法只有最合适的算法 。 ----------------- 分代收集算法。 5.分代收集算法 工作原理 基于对象的生命周期将内存分为不同的代如年轻代和老年代。 年轻代使用复制算法因为大多数对象在年轻代中很快死亡。 老年代使用标记-清除或标记-整理算法因为老年代中的对象存活时间较长。 优点 针对不同生命周期的对象采用不同的回收策略提高了回收效率。 缺点 实现复杂需要维护多个代的内存区域。 ps:可达性分析算法 可达性分析算法Reachability Analysis本身并不是一个独立的垃圾回收算法而是一种用于判断对象是否存活的技术。它是许多垃圾回收算法的基础尤其是**标记-清除算法Mark-Sweep和标记-整理算法Mark-Compact**的核心部分。 可达性分析的作用 可达性分析通过从根对象如全局变量、栈中的局部变量、静态变量等出发遍历所有被引用的对象标记这些对象为“存活”。未被标记的对象则被认为是“垃圾”可以被回收。 可达性分析与垃圾回收算法的关系 标记-清除算法Mark-Sweep 使用可达性分析来标记所有存活对象。 在清除阶段释放未被标记的对象的内存。 标记-整理算法Mark-Compact 同样使用可达性分析来标记存活对象。 在整理阶段将存活对象移动到内存的一端然后清理剩余的内存。 分代收集算法Generational 在年轻代和老年代中都可能使用可达性分析来判断对象的存活状态。 年轻代通常使用复制算法而老年代可能使用标记-清除或标记-整理算法。 复制算法Copying 虽然复制算法的主要特点是复制存活对象但它也需要通过可达性分析来确定哪些对象是存活的。 结论 垃圾回收是现代编程语言中不可或缺的一部分它通过自动管理内存极大地简化了程序开发。不同的垃圾回收算法各有优缺点适用于不同的应用场景。理解这些算法的原理和适用场景有助于我们编写更高效、更稳定的程序。
http://www.hkea.cn/news/14431156/

相关文章:

  • 成都网站建设的费用c2c网站的特点及主要功能
  • 陕西建设注册中心网站广东公司网站建设企业
  • 湖南火电建设有限公司招标网站海口网约车最新政策
  • 西安网站建设云阔网络熊掌号数字媒体技术就业方向
  • 电子商务网站建设百度文库企业营销型展厅优势
  • 个人建 行业 网站做注册会计师网站
  • 免费网站主机空间大一html网页制作作业简单
  • 深圳网站建设找哪家好理财网站建设
  • 杭州网站建设公司代理加盟成都的设计院有哪些
  • 做哪些网站不受法律保护建设工程项目管理
  • 青羊区建设和交通网站开发网站过程
  • 如何修改网站模板上海公司黄页网站
  • asp网站乱码网页制作电脑软件
  • 哈尔滨关键词优化报价全能优化型网站
  • 五百亿网站建设网站搭建平台价格
  • 网站建设需求调查表怎么租服务器做网站
  • 永嘉县住房和城乡规划建设局网站住房及城乡建设部网站
  • 好资源源码网站wordpress 分类seo
  • 企业网站一般包括哪些内容linux服务器下如何新建网站
  • 网站后台管理无法编辑wordpress 超级排版器
  • 昆明网站排名优化html官方下载
  • 网站如何做线上和线下推广上海最新状况
  • 朔州公司做网站网站多少流量够用
  • 怎么把自己做的网站放到百度上公司网站服务器优化
  • 两学一做 答题 网站手机怎样做自己的网站
  • 网页 网站 站点的区别网站如何做聚合页面
  • 快三竞猜网站建设网站开发常用图标
  • 网站备案变更主体电话网络产品营销策略范文
  • 不断加强门户网站建设宜良县建设局网站
  • 中小企业网站制作多少钱app立即打开