认识java-STW:Stop the World
1.Stop-the-World,简称STW,指的是GC事件发生过程中,会产生应用程序的停顿。停顿产生时整个应用程序线程都会被暂停,没有任何响应。有点像卡死的感觉,这个停顿成为STW。
可达性分析算法中枚举根节点(GC Roots)会导致所有Java执行线程停顿。
(1)分析工作必须在一个能确保一致性的快照中进行。
(2)一致性指整个分析期间整个执行系统看起来像被冻结在某个时间点上。
(3)如果出现分析过程中对象引用关系还在不断变化,则分析结果的准确性无法保证。
2.被STW中断的应用程序线程会在完成GC之后恢复,频繁中断会让用户感觉像是网速不快造成电影卡带一样,所以我们需要减少STW的发生。
3.STW事件和采用哪款GC无关,所有的GC都有这个事件。
4.哪怕是G1也不能完全避免Stop-the-world情况发生,只能说垃圾回收器越来越优秀,回收效率越来越高,尽可能地缩短了暂停时间。
5.STW是JVM在后台自动发起和自动完成的。在用户不可见的情况下,把用户正常的工作线程全部停掉。
6.开发中不要用System.gc();会导致Stop-the-world的发生。
STW验证
结果:
认识java-STW:Stop the World相关推荐
- jvm的类加载和运行时数据区和垃圾回收
类加载过程 加载(loading) 引导类加载器 扩展类加载器 系统类加载器 1.通过一个类的全限定名获取此类的二进制字节流 2.将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构 3.在内 ...
- Java虚拟机中STW(stop the world)是什么意思
Stop-the-World,简称STW 1.指的是GC事件发生过程中,会产生应用程序的停顿.停顿产生时整个应用程序线程都会被暂停,没有任何响应, 有点像卡死的感觉,这个停顿称为STW. (1)可达性 ...
- java stw_快速理解Java垃圾回收和jvm中的stw
Java中Stop-The-World机制简称STW,是在执行垃圾收集算法时,Java应用程序的其他所有线程都被挂起(除了垃圾收集帮助器之外).Java中一种全局暂停现象,全局停顿,所有Java代码停 ...
- Java中STW (GC卡顿)
在垃圾回收时,都会产生应用程序的停顿,停顿产生时,整个应用程序会被卡死,没有任何响应. java中Stop-The-World机制简称STW,是在执行垃圾收集算法时,Java应用程序的其他所有线程都被 ...
- java stw_聊聊JAVA GC系列(6) - STW
上回介绍了"平平无奇"的标记清除算法却是JAVA GC的灵魂, 介绍的过程中留下了几个问题, 其中一个问题是: 标记清除算法正在运行时各个对象的依赖关系发生了变化怎么办? 我们先假 ...
- java stw_JVM中的STW和CMS
Java中Stop-The-World机制简称STW,是在执行垃圾收集算法时,Java应用程序的其他所有线程都被挂起(除了垃圾收集帮助器之外).Java中一种全局暂停现象,全局停顿,所有Java代码停 ...
- JAVA GC - STW
我们先假设GC拥有独立的线程, 与用户的逻辑并行的运行, 看看会有哪些不符合预期的情况. 情况一: 该回收的没回收 在标记的过程中, 在对象被标记之后, 用户的线程做了一些操作, 所有对象都不再依赖这 ...
- java stw_java 中STW现象解决
先自己弄个问题 产生这个STW问题有 dump线程 死锁检查 堆dupm /**产生stw其它几个因素: * dump线程 * 死锁检查 * 堆dupm * 垃圾回收算法:为让stw时间较长,增大年老 ...
- java stw_JVM STW里的no vm operation是怎么发生的
jvm:参数 JAVA_OPTS="-Dfile.encoding=UTF8 -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetas ...
- java为啥要stw_【JVM 学习】ParNew 为什么要STW
Serial 和 ParNew 在进行垃圾回收时,为什么需要stop the world?不stop thw world 可以吗? 在进行标记的时候,如果工作线程不停止的话,那么肯定会有新对象生成.这 ...
最新文章
- 拿来就能用!Dijkstra 算法实现快递路径优化
- 第一次使用Plesk云主机面板?5招搞定!
- struts2拦截器底层原理
- git clone错误 fatal: early EOF fatal: index-pack failed
- idea创建、运行、打包控制台程序
- javascript设计模式-模板方法模式(Template)
- redis 一般启动几个 哨兵_Redis 5.0.8 主从+哨兵的搭建
- java能过吗_java – 你能通过例子解释AspectJ的cFlow(P u00...
- oracle默认导出路径linux,传统路径导出 VS 直接路径导出(oracle exp direct=y)
- 编程实战:如何管理代码里的常量
- 多用户用linux会很卡顿吗,新手学Linux系统,解决Linux系统卡顿的方法
- ubuntu下c++编译cpp(包含自定义类的多级调用)
- 044. asp.net主题之二为主题添加CSS样式和动态加载主题
- Word编辑公式的快捷键与命令
- qlv是什么格式的视频,怎么把qlv格式转换成mp4
- 如何使用python 给PDF生成目录
- Efficient Net_V2
- 在word里打勾的方法
- CentOS7 通过Systemctl实现脚本的开机自启(亲测有效)
- hadoop SWAP交换空间
热门文章
- EXC中时间控件的使用
- Spring (1) 认识Spring、 介绍Spring特点、解答为什么学习Spring
- 史上最全阿里云服务器上Docker部署Springboot项目 实战 每一步都带详细图解!!!
- m5310模组数据上传至onenet_NBIOT模组M5310接入中国移动物联网开放平台示例文档
- svm 交叉验证 python_【python机器学习笔记】SVM实例:有毒蘑菇预测
- java跨库join方案_集算器协助java处理多样性数据源之跨库关联
- i.MX 系列CPU HAB漏洞SecureBoot漏洞
- winsetup制作linux启动盘,winsetupfromusb怎样做linux启动盘
- 自动生成requirements.txt
- 后端数据操作超时_数据分析在知乎商业质量保障中的初步实践