文章分类 - java GC
摘要:一、Java GC监视和分析工具 下面是一些可用的工具,每个都有自己的优势和缺点。我们可以通过选择正确的工具并分析,来提升应用程序的性能。这篇教程中,我们选用Java VisualVM。 Java VisualVM Naarad GCViewer IBM Pattern Modeling and A
阅读全文
摘要:一、Java 垃圾回收 Java 垃圾回收是一项自动化的过程,用来管理程序所使用的运行时内存。通过这一自动化过程,JVM 解除了程序员在程序中分配和释放内存资源的开销。 二、启动Java垃圾回收 作为一个自动的过程,程序员不需要在代码中显示地启动垃圾回收过程。System.gc()和Runtime.
阅读全文
摘要:一、Java有四种类型的垃圾回收器 串行垃圾回收器(Serial Garbage Collector) 并行垃圾回收器(Parallel Garbage Collector) 并发标记扫描垃圾回收器(CMS Garbage Collector) G1垃圾回收器(G1 Garbage Collecto
阅读全文
摘要:一、JVM 内存区域 这里也简单罗列一下 JVM 的五部分 (1)程序计数器 这是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的行号指示器,线程私有。 (2)Java 虚拟机栈 它是 Java方法执行的内存模型,每一个方法被调用到执行完成的过程,就对应着一个栈帧在虚拟机栈中从入栈到出
阅读全文
摘要:一、对象分类 上一章已经说过,分代回收算法是针对对象的不同特性,而使用适合的算法,这里面并没有实际上的新算法产生。与其说分代回收算法是第四个算法,不如说它是对前三个算法的实际应用。 首先我们来探讨一下对象的不同特性,接下来LZ和各位来一起给这些对象选择GC算法。 内存中的对象按照生命周期的长短大致可
阅读全文
摘要:GC算法中最基础的算法 标记/清除算法。 首先,我们回想一下上一章提到的根搜索算法,它可以解决我们应该回收哪些对象的问题,但是它显然还不能承担垃圾搜集的重任,因为我们在程序(程序也就是指我们运行在JVM上的JAVA程序)运行期间如果想进行垃圾回收,就必须让GC线程与程序当中的线程互相配合,才能在不影
阅读全文
摘要:一、复制算法 我们首先一起来看一下复制算法的做法,复制算法将内存划分为两个区间,在任意时间点,所有动态分配的对象都只能分配在其中一个区间(称为活动区间),而另外一个区间(称为空闲区间)则是空闲的。 当有效内存空间耗尽时,JVM将暂停程序运行,开启复制算法GC线程。接下来GC线程会将活动区间内的存活对
阅读全文
摘要:1. 串行收集器 串行收集器是最古老,最稳定以及效率高的收集器可能会产生较长的停顿,只使用一个线程去回收-XX:+UseSerialGC 新生代、老年代使用串行回收 新生代复制算法 老年代标记-压缩 新生代、老年代使用串行回收 新生代复制算法 老年代标记-压缩 串行收集器的日志输出: 2. 并行收集
阅读全文
摘要:Java垃圾回收概况 Java GC(Garbage Collection,垃圾收集,垃圾回收)机制,是Java与C++/C的主要区别之一,作为Java开发者,一般不需要专门编写内存回收和垃圾清理代 码,对内存泄露和溢出的问题,也不需要像C程序员那样战战兢兢。这是因为在Java虚拟机中,存在自动内存
阅读全文

浙公网安备 33010602011771号