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

上海外企济南seo整站优化厂家

上海外企,济南seo整站优化厂家,服装网站设计策划书范文,类似pc蛋蛋的网站建设CMS垃圾回收器四个主要步骤 初始标记阶段(Initial Mark Phase) 目的:标记老年代中所有从GC Roots直接可达的对象。特点:此阶段会导致STW(Stop The World),即暂停应用程序的执行,但停…

CMS垃圾回收器四个主要步骤

  1. 初始标记阶段(Initial Mark Phase)

    • 目的:标记老年代中所有从GC Roots直接可达的对象。
    • 特点:此阶段会导致STW(Stop The World),即暂停应用程序的执行,但停顿时间较短。
    • 执行内容:标记GC Roots直接引用的对象,以及年轻代中存活的对象引用到的老年代对象。
  2. 并发标记阶段(Concurrent Mark Phase)

    • 目的:从初始标记阶段标记的对象开始,遍历整个对象图,找出所有存活的对象。
    • 特点:此阶段与应用程序并发运行,不会暂停应用程序的执行。
    • 执行内容:遍历对象图,标记所有可达的对象。
  3. 重新标记阶段(Remark Phase)

    • 目的:修正并发标记阶段中可能因引用关系变更而遗漏的存活对象。
    • 特点:此阶段也会导致STW,但停顿时间相对较短。
    • 执行内容:扫描整个堆内存(包括年轻代和老年代),确保所有存活对象都被准确标记。
  4. 并发清除阶段(Concurrent Sweep Phase)

    • 目的:清除那些没有被标记的对象,回收内存空间。
    • 特点:此阶段与应用程序并发运行。
    • 执行内容:回收未标记对象的内存空间,准备下一次垃圾回收。

需要注意的是,虽然我们将CMS垃圾回收器的过程概括为四个主要步骤,但每个步骤内部可能还包含更细致的子步骤或优化机制。此外,CMS垃圾回收器也面临一些挑战,如浮动垃圾问题(即在并发清除阶段新产生的垃圾无法立即被回收)和空间碎片问题(由于标记-清除算法可能导致内存碎片)。

为了优化CMS垃圾回收器的性能,可以通过调整JVM参数来减少停顿时间、提高吞吐量或降低内存碎片。例如,可以调整-XX:CMSInitiatingOccupancyFraction参数来控制CMS垃圾回收器触发的时机,或调整-XX:+UseCMSCompactAtFullGC参数来启用在Full GC时进行内存压缩以减少碎片。

G1垃圾回收器四个主要步骤

  1. 初始标记阶段(Initial Mark Phase)

    • 目的:标记从GC Roots直接可达的对象,并修改TAMS(Top at Mark Start)指针,为并发标记阶段做准备。
    • 特点:此阶段会导致STW(Stop The World),但停顿时间非常短,通常借用Minor GC时完成。
    • 执行内容:标记GC Roots直接引用的对象,并更新TAMS指针以记录回收过程中新对象的分配。
  2. 并发标记阶段(Concurrent Marking Phase)

    • 目的:从初始标记阶段标记的对象开始,递归扫描整个堆,对堆中对象进行可达性分析,找出要回收的对象。
    • 特点:此阶段与应用程序并发运行,不会暂停应用程序的执行。使用SATB(Snapshot-At-The-Beginning)算法处理并发标记过程中的漏标对象。
    • 执行内容:遍历对象图,标记所有可达的对象,并使用SATB算法记录并发过程中可能产生的漏标对象。
  3. 最终标记阶段(Remark Phase)

    • 目的:处理并发标记阶段中遗漏的存活对象,并修正标记结果。
    • 特点:此阶段也会导致STW,但停顿时间相对较短。
    • 执行内容:扫描整个堆内存(或特定区域),确保所有存活对象都被准确标记,并修正并发标记阶段的标记结果。
  4. 筛选回收阶段(Live Data Counting And Evacuation Phase)

    • 目的:制定回收计划,选择多个Region构成回收集,并回收其中的垃圾对象。
    • 特点:此阶段可能包含STW,具体取决于回收策略和回收集的大小。
    • 执行内容:对各个Region的回收价值和成本进行排序,根据用户期望的停顿时间制定回收计划。然后,将回收集中Region的存活对象复制到空的Region中,并清理掉整个旧Region的全部空间。此阶段可能包含Young GC和Mixed GC两种回收模式。

G1垃圾回收器的设计目标是减少停顿时间,适用于对延迟敏感的应用。它通过引入分区(Region)和分治策略,将堆内存划分为多个固定大小的Region,并独立管理这些Region的垃圾回收过程。此外,G1还使用了RSet(Remembered Set)数据结构来记录跨代引用关系,以提高GC效率。

为了优化G1垃圾回收器的性能,可以通过调整JVM参数来控制其行为。例如,可以调整-XX:MaxGCPauseMillis参数来设置期望的最大GC停顿时间,或调整-XX:G1HeapRegionSize参数来设置Region的大小。这些参数可以帮助G1更好地适应不同的应用场景和性能需求。

CMS与G1的区别

  1. 工作原理

    • CMS:主要针对老年代进行垃圾回收,采用标记-清除算法。在回收过程中,大部分工作可以与应用程序线程并发执行,以减少停顿时间。但CMS在并发标记和清除阶段会占用一部分线程资源,可能导致应用程序变慢,总吞吐量降低。
    • G1:是一个面向服务端应用的垃圾回收器,设计用于多处理器和大内存环境。它将堆内存划分为多个大小相同的区域(Region),并采用物理分区、逻辑分代的方式管理内存。G1使用标记-整理算法,在垃圾回收过程中会进行空间整合,避免内存碎片的产生。G1可以与应用程序线程并发执行垃圾回收,同时支持多个处理器并行处理垃圾回收任务,以提高效率。
  2. 停顿时间控制

    • CMS:虽然旨在减少停顿时间,但无法设置具体的目标停顿时间,其停顿时间相对不可控,主要取决于堆内存的大小、垃圾对象的数量以及垃圾回收的并发程度等因素。
    • G1:通过设定-XX:MaxGCPauseMillis参数,可以更加精确地控制垃圾回收的停顿时间,以满足应用程序对响应时间的严格要求。G1使用了一个停顿预测模型,根据用户定义的停顿时间目标来选择一定数量的区域进行回收,从而尽量在指定的时间内完成垃圾回收。
  3. 内存碎片

    • CMS:由于采用标记-清除算法,可能会产生较多的内存碎片。内存碎片不仅会降低内存分配的效率,还可能导致大对象分配失败,进而引发Full GC。
    • G1:采用复制-整理算法(新生代垃圾回收采用标记-赋值算法,老年代垃圾回收采用了标记-整理算法),在压缩空间方面有优势,可以有效避免内存碎片的产生。每次垃圾回收时,G1都会将对象从一个或多个区域复制到单个区域,并在复制过程中进行压缩,从而腾出连续的内存空间。
  4. 浮动垃圾

    • CMS:在并发清除阶段,垃圾回收线程和用户线程同时工作会产生浮动垃圾。CMS必须预留一部分内存空间用于存放浮动垃圾,如果预留给用户线程的内存不足,就会出现“ConcurrentMode Failure”,此时会切换到SerialOld收集方式,导致效率低下。
    • G1:没有浮动垃圾的问题。G1的筛选回收是多个垃圾回收线程并行执行的,没有并发清除阶段,因此不会产生浮动垃圾。

适用场景

  1. CMS

    • 适用于对CPU资源敏感且对停顿时间要求较高的应用,如实时交易系统、在线游戏等。在这些场景中,CMS能够减少垃圾回收对应用程序性能的影响,同时保持较低的停顿时间。
  2. G1

    • 适用于需要处理大堆内存、对吞吐量有较高要求且对停顿时间有一定容忍度的应用,如企业级服务器、大数据处理平台等。G1能够充分利用多核处理器和大内存资源,提高垃圾回收的效率和性能。同时,G1还能够提供可预测的停顿时间,以满足应用程序对响应时间的严格要求。

综上所述,CMS和G1各有优劣,在选择垃圾回收器时,应根据具体的应用场景和性能需求进行权衡和选择。

http://www.yidumall.com/news/96879.html

相关文章:

  • 牛商网络南京seo报价
  • 滕州手机网站建设近期10大新闻事件
  • 手机网站开发教程pdf岳阳网站界面设计
  • 网站怎么做地区屏蔽js港港网app下载最新版
  • 网站建设跟网站结构模板建站代理
  • 宇锋网站建设下拉关键词排名
  • 网站开发工程师培训班搜索引擎优化叫什么
  • 做网站 带宽 多少钱哪些店铺适合交换友情链接
  • 网站建设有哪些软件有哪些百度安装下载
  • 局域网内网站建设的步骤过程网络服务合同
  • q a wordpress插件下载西安seo优化系统
  • 做外贸营销网站百度站长平台链接提交
  • gis网站开发实战教程广西网络推广公司
  • b2b与b2c的区别是什么百度seo推广计划类型包括
  • 手机网站模板用什么做网站指数查询
  • 有没有专做泰国代购的网站太原网站关键词推广
  • 美女做视频网站seo行业岗位有哪些
  • 专业的魔站建站系统宁波seo关键词费用
  • wordpress吾爱整站seo免费咨询
  • 自己做响应式网站难吗微信如何投放广告
  • 网站推广与优化怎么做宁波seo推广优化怎么做
  • 网站网页框架构架图怎么做一个新手怎么去运营淘宝店铺
  • 动态网站如何维护百度竞价推广效果好吗
  • 打开网站自动弹出qq网络营销的认识
  • 网站编辑知识推广方案范例
  • 网站建设 哪家好排行榜123网
  • 学校招聘教师网站建设长沙靠谱关键词优化公司电话
  • 贵阳有哪家做网站建设好点的会计培训班推荐
  • 铜仁做网站最火的网络推广平台
  • 平面设计师务所seo的主要内容