GC(垃圾回收)相关知识
一、常见的 GC 收集器
- Serial GC
- Serial GC 是最基本的垃圾收集器,它是单线程的。在进行垃圾收集时,会暂停所有的用户线程,直到垃圾收集完成。它的工作过程比较简单,首先标记出所有的垃圾对象,然后将它们清除。例如,在一个小型的、对响应时间要求不高的 Java 应用程序中,如简单的命令行工具,Serial GC 可以满足垃圾收集的需求。因为这种应用程序通常没有很高的并发要求,暂停用户线程的影响较小。
- 它的优点是实现简单,对于小型应用程序或者单处理器环境下,它的性能可以接受。缺点是在多处理器环境下或者对响应时间敏感的应用程序中,由于它会暂停所有用户线程,可能会导致应用程序出现明显的卡顿。
- Parallel GC(Throughput Collector)
- Parallel GC 是多线程的垃圾收集器,它可以利用多个处理器的优势来提高垃圾收集的效率。在标记和清除阶段,它会同时使用多个线程来工作。例如,在一个数据处理应用程序中,有大量的数据对象需要进行垃圾收集,Parallel GC 可以更快地完成垃圾收集任务。
- 它的主要目标是提高吞吐量,即让应用程序有更多的时间来执行实际的业务逻辑,而减少垃圾收集所占