串行回收器
串行回收器是单线程进行垃圾回收的回收器,回收时它只有一个工作线程。它可以在新生代和老年代使用,以此分为新生代串行回收器和老年代串行回收器。
串行回收器是独占式垃圾回收器,它在工作时Java应用程序中的线程都会暂停,造成不好的用户体验。下面是有关串行回收器的相关参数:
-XX:+UseSerialGC:新生代老年代都使用串行回收器。
-XX:+UseParallelGC:新生代使用ParallelGC回收器,老年代使用串行回收器
并行回收器
新生代Parallel回收器是使用复制算法的垃圾回收器,是多线程,独占式的,除此之外,它还关注系统的吞吐量。
-XX:+UseParallelGC:新生代使用ParallelGC回收器,老年代使用串行回收器。
-XX:+UseParallelOldGC:新生代使用ParallelGC回收器,老年代使用ParallelOldGC回收器。
-XX:MaxGCPauseMillis设置最大垃圾停顿收集时间,它会尽量调整Java堆大小或者其他的一些参数,尽可能把停顿时间控制在这个范围内。但是如果这个值设置的特别小,就会使垃圾回收变得很频繁,增加垃圾回收总时间,降低吞吐量。
-XX:GCTimeRatio设置吞吐量大小,它是一个介于1到100之间的整数,如果它为n,那么系统会用不超过1/(1+n)的时间用来时间用来收集,它的默认值是19,那么它就会用不超过5%的时间用于垃圾收集。
-XX:UseAdaptiveSizePolicy:自适应的垃圾回收策略,让虚拟机自己完成调优工作。
JVM学习笔记第二天,垃圾收集器和内存分配(一)
最新推荐文章于 2023-12-26 19:52:05 发布