0
点赞
收藏
分享

微信扫一扫

serial收集器、ParNew收集器

  • ​serial垃圾收集器​
  • Serial是⼀个单线程的垃圾收集器
  • 特点

“Stop The World”,它进⾏垃圾收集时,必须暂停其他所有的⼯作线程,直到它收集结束。在⽤户不可⻅的情况下把⽤户正常⼯作的线程全部停掉
使⽤场景:多⽤于桌⾯应⽤,Client端的垃圾回收器
桌⾯应⽤内存⼩,进⾏垃圾回收的时间⽐较短,只要不频繁发⽣停顿就可以接受

  • 图解
  • serial收集器、ParNew收集器_垃圾收集

  • ​parnew垃圾收集器​

ParNew 收集器其实就是 Serial 收集器的多线程版本,除了使⽤多条线程进⾏垃圾收集之外,其余⾏为包括 Serial 收集器可⽤的所有控制参数
(例如:-XX: SurvivorRatio、-XX:PretenureSize' Threshold、-XX: HandlePromotionFailure 等)、收集算法、Stop TheWorld、
对象分配规则、回收策略等都与 Serial 收集器完全⼀样,在实现上,这两种收集器也共⽤了相当多的代码

  • 图解
  • serial收集器、ParNew收集器_垃圾收集器_02

  • 特点

ParNew 收集器除了多线程收集之外,其他与 Serial 收集器相⽐并没有太多创新之处,但它却是许多运⾏在 Server 模式下的虚拟机中⾸选的新⽣代收集器,
其中有⼀个与性能⽆关但很重要的原因是,除了 Serial 收集器外,⽬前只有它能与 CMS 收集器配合⼯作。
使⽤-XX: ParallelGCThreads 参数来限制垃圾收集的线程数
多线程操作存在上下⽂切换的问题,所以建议将-XX: ParallelGCThreads设置成和CPU核数相同,如果设置太多的话就会产⽣上下⽂切换消耗

  • 并发与并⾏

并⾏(Parallel):指多条垃圾收集线程并⾏⼯作,但此时⽤户线程仍然处于等待状态。
并发(Concurrent):指⽤户线程与垃圾收集线程同时执⾏(但不⼀定是并⾏的,可能会交替执⾏),⽤户程序在继续运⾏,⽽垃圾收集程序运⾏于另⼀个 CPU 上



举报

相关推荐

0 条评论