首页 > 其他分享 >你知道什么是STW吗?

你知道什么是STW吗?

时间:2023-10-17 18:57:49浏览次数:26  
标签:text 什么 STW 垃圾 marks nodes type id 知道


STW:Stop-The-World: 是在垃圾回收算法执⾏过程当中,将JVM内存冻结、应用程序停顿的⼀种状态
  • 在STW 状态下,JAVA的所有线程都是停⽌执⾏的 -> GC线程除外
  • 一旦Stop-the-world发生,除了GC所需的线程外,其他线程都将停止工作,中断了的线程直到GC任务结束才继续它们的任务。
  • STW是不可避免的,垃圾回收算法执⾏一定会出现STW,我们要做的只是减少停顿的时间
  • GC各种算法优化的重点,就是减少STW(暂停),同时这也是JVM调优的重点。
 

为什么需要STW?

       垃圾回收是根据可达性分析算法,搜索GC Root根的引用链,将不在引用链上的对象当做垃圾回收,设想我们执行某个方法的时候,此时产生了很多局部变量,刚好老年代满了需要进行Full gc,如果不停止线程,垃圾回收正在根据这些局部变量也就是GC Root根搜索引用链,此时有个方法结束了,那么这些局部变量就都会被销毁,这些引用链的GC Root根都销毁了,这些引用当然也成了垃圾对象,这样就会导致在垃圾回收的过程中还会不断的产生新的垃圾。        但是Stop-The-World的结果是比较严重的,如果用户正在浏览你的网站,应用程序突然Stop-The-World,所有线程被挂起,那么用户就会感觉你的网站卡住了,尽管gc时间是比较快的,但是如果并发量比较大,用户感知是比较明显的,会影响用户体验。  
非常通俗的讲: 为什么需要STW呢?试想你妈给你打扫房间的场景:把你撵出去,关上门,打扫干净,打开门,数落你,揍你…一套标准化流程后,房间干净了。打完你,你妈的心情变好了,打麻将都能多赢点。这里面有个关键环节:把你撵出去。尽管在打扫方面的过程中你可能不会制造垃圾,但是你的存在就有这个风险,所以必须把你撵出去。这话不是我说的,是从你妈的行为中揣摩出来的。^_^ 试想,如果不把你撵出去,你妈打扫垃圾的同时,你又陆陆续续制造了垃圾,那这场打扫房间的行动是不是变成了无法结束的行动啊。或者到某个时间点,你妈打扫了一半走了,丢下一句话:朽木不可雕也,孺子不可教也。
   

标签:text,什么,STW,垃圾,marks,nodes,type,id,知道
From: https://www.cnblogs.com/nliu/p/17770423.html

相关文章

  • 学术界和产业界之间为什么会存在这么大的差异
    学术界和产业界之间为什么会存在这么大的差异?关键差异到底在哪里?第一,学术界一些习以为常的想法在行业实践中可能并不适用例如,学术界通常认为,最重要的是发现尽可能多的问题。但是与产品线专家交流后,我们发现大部分问题对客户来说都是不重要的,测出一个重要的问题比测出100个不重要......
  • JDK21的虚拟线程是什么?和平台线程什么关系?
    虚拟线程(VirtualThread)是JDK而不是OS实现的轻量级线程(LightweightProcess,LWP),由JVM调度。许多虚拟线程共享同一个操作系统线程,虚拟线程的数量可以远大于操作系统线程的数量。在引入虚拟线程之前,java.lang.Thread包已经支持所谓的平台线程,也就是没有虚拟线程之前,我们一直......
  • 当我们谈Raytracing时我们在谈些什么
    【USparkle专栏】如果你深怀绝技,爱“搞点研究”,乐于分享也博采众长,我们期待你的加入,让智慧的火花碰撞交织,让知识的传递生生不息!科普性的介绍一下光追。不讲蒙特卡洛和分层抖动采样,不讲PBRT,不讲BRDF,不讲渲染方程,降噪方法,不讲SDF的细节概念。简而言之,复杂的一概不讲,麻绳专挑细处断......
  • 传奇世界版本修改方法需要注意什么
    到处找教程学习为什么修改版本别人都说按情况收费,至于教学有点不可靠。每个不同的引擎对应的变量脚本不一样,你学习了A的使用但市场在变化可能会出现BCD引擎你又要去看变量,甚至更有的A引擎更新后变量会随着官方设置改变的。还需要学习吗引擎变量就算给你看用中文注释没有......
  • 为什么要做数据可视化系统
     数据可视化已经成为企业日常管理当中必备的一项重要技术,它以图表、图形和其他可视化形式将数据转化为可理解的信息,帮助企业快速做出决策。如今,随时外部竞争环境的恶化,拥有一套高效精准的数据可视化系统成了重中之重。因此,数聚就从为什么企业需要数据可视化系统来做深度探讨,使用......
  • 为什么说小微企业更需要客户管理系统?
    大企业普遍拥有成熟的客户管理系统,而对小微企业而言,客户管理系统的重要性更为突出。这是因为小微企业管理相对薄弱,资源有限,人力资金需要更加精细化的管理。那么,为什么说小微企业更需要客户管理系统?一、精细化销售过程让销售人员了了解每个客户的销售阶段,并根据情况分别规划下一......
  • 什么是Kappa架构?
    一、简介相当于在Lambda架构上去掉了批处理层(BatchLayer),只留下单独的流处理层(SpeedLayer)。通过消息队列的数据保留功能,来实现上游重放(回溯)能力。当流任务发生代码变动时,或者需要回溯计算时,原先的JobN保持不动,先新启动一个作业JobN+1,从消息队列中获取历史数据,进行计算,计算结......
  • 什么是Lambda架构?
    一、简介Lambda架构(LambdaArchitecture)是由Twitter工程师南森·马茨(NathanMarz)提出的大数据处理架构。这一架构的提出基于马茨在BackType和Twitter上的分布式数据处理系统的经验。Lambda架构使开发人员能够构建大规模分布式数据处理系统。它具有很好的灵活性和可扩展性,也对硬......
  • 神经网络入门篇:神经网络到底是什么东西
    神经网络到底是什么东西我们常常用深度学习这个术语来指训练神经网络的过程。有时它指的是特别大规模的神经网络训练。那么神经网络究竟是什么呢?举例说明-通俗易懂第一个例子从一个房价预测的例子开始讲起。假设你有一个数据集,它包含了六栋房子的信息。所以,你知道房屋的面......
  • 黑客可以厉害到什么程度?
    前言知乎上有一个提问:黑客可以厉害到什么程度?                  ↓↓↓今天,我们就这个话题,一起来做个讨论。对于大多数人来说,黑客给我们的印象一般都来自电影、媒体等信息。那种动不动入侵美国中央情报服务器;动不动在某些国家的政府网站......