JVM-【场景实战】熟悉Serial垃圾回收器的使用

发布时间:2024年01月04日

1.Serial的使用

Serial 收集器是最基本、历史最悠久的垃圾收集器了,JDK1.3 之前回收新?代唯?的选择。Serial 收集器作为 HotSpot 中 Client 模式下的默认新?代垃圾收集器。

Serial 收集器采?复制算法、串?回收和 "Stop- the-World" 机制的?式执?内存回收。

除了年轻代之外,Serial 收集器还提供?于执??年代垃圾收集的 Serial Old 收集器。Serial Old收集器同样也采 ?了串?回收和 "Stop the World" 机制,只不过内存回收算法使?的是标记-压缩算法。

Serial Old是运?在 Client 模式下默认的?年代的垃圾回收器

Serial Old 在 Server 模式下主要有两个?途:

???????? ① 可以与新?代的 Parallel Scavenge 配合使?。

???????? ② 作为?年代 CMS 收集器的后备垃圾收集?案,是?级垃圾回收器?法?作时的保底策略

这个收集器是?个单线程的收集器,但它的 “单线程” 的意义并不仅仅说明它只会使??个 CPU 或?条收集线 程去完成垃圾收集?作,更重要的是在它进?垃圾收集时,必须暂停其他所有的?作线程,直到它收集结束 (Stop The World)

Serial回收器的优势与设置参数优势:简单??效(与其他收集器的单线程?),对于限定单个 CPU 的环境来说, Serial 收集器由于没有线程交互的开销,专?做垃圾收集?然可以获得最?的单线程收集效率。

在?户的桌?应?场景中,可?内存?般不?(?? MB ??两百 MB),可以在较短时间内完成垃圾收集(?? ms ??百多个ms),只要不频繁发?,使?串?回收器是可以接受的。

在 HotSpot 虛拟机中,使? -XX: +UseSerialGC 参数可以指定年轻代和?年代都使?串?收集器等价于新?代? Serial GC, 且?年代? Serial Old GC。

案例:

代码:

public class SerialGC {
 private static int size = 1024 * 256;
 public static void main(String[] args) {
 for (int i = 0; i < 33; i++) {
 byte[] allo = new byte[size];
 }
 }
}

jvm参数:

-Xmx20M -Xmn10M -XX:+PrintGCDetails -XX:+UseSerialGC -XX:+PrintGCTimeStamps -
XX:SurvivorRatio=8

执??志:

0.133: [GC (Allocation Failure) 0.133: [DefNew: 8105K->378K(9216K), 0.0015472 secs]
8105K->378K(19456K), 0.0016135 secs] [Times: user=0.00 sys=0.00, real=0.01 secs]
Heap
 def new generation total 9216K, used 2751K [0x00000007bec00000, 0x00000007bf600000,
0x00000007bf600000)
 eden space 8192K, 28% used [0x00000007bec00000, 0x00000007bee51258,
0x00000007bf400000)
 from space 1024K, 36% used [0x00000007bf500000, 0x00000007bf55eb78,
0x00000007bf600000)
 to space 1024K, 0% used [0x00000007bf400000, 0x00000007bf400000,
0x00000007bf500000)
 tenured generation total 10240K, used 0K [0x00000007bf600000, 0x00000007c0000000,
0x00000007c0000000)
 the space 10240K, 0% used [0x00000007bf600000, 0x00000007bf600000,
0x00000007bf600200, 0x00000007c0000000)
 Metaspace used 3079K, capacity 4496K, committed 4864K, reserved 1056768K
 class space used 337K, capacity 388K, committed 512K, reserved 1048576K

文章来源:https://blog.csdn.net/zhenlong_qu/article/details/135347327
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。