文章分类 -  jvm

摘要:设置jvm启动参数 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/root/dumpfile 一个死循环一直添加对象 查看日志报错 获取到内存溢出的快照文件 最后将快照文件移入到idea中 阅读全文
posted @ 2023-02-14 15:47 sugarstar 阅读(130) 评论(0) 推荐(0)
摘要:G1 因为G1是一个并行回收器,它把堆内存分割为很多不相关的区域(Region)(物理上不连续的)。使用不同的Region来表示Eden、幸存者0区,幸存者1区,老年代等。G1 GC有计划地避免在整个Java 堆中进行全区域的垃圾收集。G1 跟踪各个 Region里面的垃圾堆积的价值大小(回收所获得 阅读全文
posted @ 2023-02-09 17:36 sugarstar 阅读(461) 评论(0) 推荐(0)
摘要:7款经典垃圾回收器 如果你想要最小化地使用内存和并行开销,请选serial GC+Serial Old;如果你想要最大化应用程序的吞吐量,请选Parallel GC+Parallel old;如果你想要最小化GC的中断或停顿时间,请选CMS GC+ParNew; 串行对于交互较强的应用而言,这种垃圾 阅读全文
posted @ 2023-02-09 17:34 sugarstar 阅读(147) 评论(0) 推荐(0)
摘要:可达性分析算法 可达性分析算法是以根对象集合(GC Roots)为起始点,按照从上至下的方式搜索被根对象集合所连接的目标对象是否可达。使用可达性分析算法后,内存中的存活对象都会被根对象集合直接或间接连接着,搜索所走过的路径称为引用链(Reference Chain)如果目标对象没有任何引用链相连,则 阅读全文
posted @ 2023-02-09 17:32 sugarstar 阅读(68) 评论(0) 推荐(0)
摘要:执行引擎 “虚拟机”是一个相对于“物理机”的概念,这两种机器都有代码执行能力。 其区别是物理机的执行引擎是直接建立在处理器、缓存、指令集和操作系统层面上的,而虚拟机的执行引擎则是由软件自行实现的,因此可以不受物理条件制约地定制指令集与执行引擎的结构体系,能够执行那些不被硬件直接支持的指令集格式。1、 阅读全文
posted @ 2023-02-09 17:30 sugarstar 阅读(44) 评论(0) 推荐(0)
摘要:运行时数据区 程序计数寄存器 1、在JVM规范中,每个线程都有它自己的程序计数器,是线程私有的,生命周期与线程的生命周期保持一致。 2、任何时间一个线程都只有一个方法在执行,也就是所谓的当前方法。程序计数器会存储当前线程正在执行的Java方法的VM指令地址;或者,如果是在执行native方法,则是未 阅读全文
posted @ 2023-02-09 17:28 sugarstar 阅读(50) 评论(0) 推荐(0)
摘要:类加载器 加载 引导类加载器Bootstrap ClassLoader 1、使用C/C++实现的,所以对象为null 2、并不是继承自java.lang.ClassLoader,没有父加载器 3、出于安全考虑,只加载包名为java、javax、sun开头的类,用于提供jvm自身需要的类 4、加载扩展 阅读全文
posted @ 2023-02-09 17:24 sugarstar 阅读(41) 评论(0) 推荐(0)