`
无名哥
  • 浏览: 6359 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

JVM源码分析之安全点safepoint

    博客分类:
  • JVM
 
阅读更多

    线程在执行GC的时候,需要收集GC Roots,这个包含线程栈中使用的对象,类中的静态常量以及静态变量,方法中使用的synchronized的锁对象等,然后通过可达性分析进行对象的回收操作。

    线程在执行的执行的时候,有一些关键点上,JVM在编译的时候已经埋下了点,可以收集当前线程使用到的对象有哪些,OOPM这个引用指针就是负责这个事情,在收集GC Roots的时候,虚拟机需要让所有的线程运行到SafePoint点上面,没有运行到SafePoint点上面的,JVM在收集之前会进行等待,让线程运行到SafePoint点上,下面就是打印的GC收集的时间以及等待线程运行到SafePoint需要的时间。

 

 

参考文章:https://www.jianshu.com/p/c79c5e02ebe6

https://www.jianshu.com/p/8f1a960dc1ec

 

 

分享到:
评论

相关推荐

    JVM 输出 GC 日志导致 JVM 卡住

    作者通过分析 Safepoint 日志和 GC 日志,发现了三个不同的现象:第一,等待所有线程进入安全点的时间特别长;第二,处于 safepoint 时间过长的,并且原因是 GC;第三,处于 safepoint 时间过长的,但是间隔日志的...

    接口偶尔超时,竟又是JVM停顿的锅!.doc

    在描述中提到,通过分析gc日志和safepoint日志,我们可以看到JVM停顿的时间确实较长,特别是在“Stopping threads”阶段,这表明在等待所有应用线程到达安全点(safepoint)的过程中消耗了大量时间。safepoint是JVM...

    JVM面试专题.pdf

    以下是对这些知识点的详细解释: 1. **内存模型及分区**: - **方法区(Method Area)**:存储类信息,如类名、方法信息、常量池(包括static常量和static变量)以及编译后的字节码。在Java 8中,永久代被...

    JVM面试题.pdf

    SafePoint 是 JVM 中的一种机制,用于确保 JVM 中的线程都进入到安全点,使得 GC 可以顺利进行。SafePoint 发生在以下情况: * 循环的末尾 * 方法返回前 * 调用方法的 call 之后 * 抛出异常的位置 六、GC 的三种...

    慢慢的回味.call_stub–JVM Java调用的入口1

    例如,它会检查当前线程是否是Java线程,调用的方法是否已知,是否处于安全点(safepoint)等。此外,它还会清除未处理的异常,以确保调用的清洁性。如果启用了JNI调用检查,还会验证参数的合法性。 在call_helper...

    JAVA_JVM面试专题20道.pdf

    5. **SafePoint**:GC执行时,需要等待所有线程到达安全点,如循环结束、方法调用等,以确保GC期间程序状态一致。 6. **GC收集算法**: - **标记清除**:标记存活对象,然后清除其余对象,产生内存碎片。 - **...

    JVM面试专题及答案.pdf

    5. **SafePoint**:程序执行过程中的一些特定位置,使得所有线程可以安全地暂停,以进行GC操作。 6. **GC收集方法**: - **标记清除**:标记无用对象并清除,效率低且易产生内存碎片。 - **复制算法**:将对象从...

    第16讲synchronized底层如何实现?什么是锁...1

    锁降级则发生在低竞争或无竞争状态下,JVM在安全点(SafePoint)时会检查并尝试将锁从重量级降回轻量级或偏斜锁,以减少不必要的系统资源消耗。需要注意,虽然不是所有情况下都会进行锁降级,但在某些特定条件下,如...

    Java线程优先级.pdf

    Java线程优先级是Java多线程编程中的一个重要概念,它允许开发者为不同的线程...在查看线程状态时,还要注意安全点(safepoint)的概念,因为线程状态的检查通常会在安全点进行,这是JVM暂停线程进行分析的关键时刻。

    第16讲 synchronized底层如何实现?什么是锁的升级、降级?1

    锁的降级通常发生在竞争减弱或不存在时,JVM 在特定的“安全点”(SafePoint)检查是否有可以降级的锁。例如,如果一个线程获得了锁,但在持有锁期间没有其他线程尝试获取锁,那么当这个线程释放锁时,JVM 有可能将...

    hotspot1.7.rar

    5. **线程与并发**:Hotspot支持多线程并发,其内部实现了线程调度和同步机制,如Monitor(监视器锁)和Safepoint(安全点)。 6. **性能监控和调试工具**:如JConsole、VisualVM等,可以帮助分析和诊断Hotspot...

    深入理解Java虚拟机笔记(带目录).docx

    * 使用安全点机制(Safepoint Mechanism):在 GC 发生时,让所有线程停在安全点上。 * 使用偏向锁机制(Biased Locking):让线程在锁竞争时停在安全点上。 垃圾收集器 Java 中的垃圾收集器有以下几种: * ...

    JDK10GC-cheatsheet.pdf

    -Xlog:safepoint显示安全点间隔时间。 -Xlog:gc+region、-XX:+PrintTLAB、-XX:+PrintPLAB和-XX:+PrintOldPLAB分别提供G1区域分配、TLAB、PLAB和old space PLAB的详细信息。 -XX:+PrintStringDeduplication输出字符串...

    01_尚硅谷_Java11_前言1

    首先,安全性是Java 11的一大关注点。它提供了最新的安全更新,包括安全协议升级和安全漏洞的修复,这对于那些将Java作为核心基础设施的企业至关重要。此外,Java 11还引入了许多新特性、错误修复,以及针对GC(垃圾...

Global site tag (gtag.js) - Google Analytics