0
点赞
收藏
分享

微信扫一扫

一文梳理清楚 Python OpenCV 的知识体系

JVM GC 区别

串行收集器 : Serial , Serial Old

  • 只有一个垃圾回收线程执行,用户线程会暂停
  • 适用 : 内存较小的嵌入式设备

并行收集器 [吞吐量优先] : Parallel Scanvenge、Parallel Old

  • 多条垃圾收集线程并行工作,但用户线程会是等待状态
  • 适用 : 科学计算、后台处理

并发收集器 [停顿时间优先] : CMS、G1

  • 用户线程 , 垃圾收集线程同时执行 , 垃圾收集执行时 , 不会停顿用户线程的运行
  • 适用 : 时间要求

G1/CMS 区别 :

  • CMS : 对老年代回收
  • G1 回收年轻代/老年代
  • G1 用 Region 对堆内存划分,并基于标记整理算法,减少垃圾碎片的产生
  • 初始化标记是,搜索可达对象用 Card Table

image.png

选择合适的垃圾收集器 :

  • 优先调整堆的大小
  • 当内存 < 100M,用 : 串行收集器
  • 当单核,并对停顿时间没要求,用 : 串行
  • 当允许停顿时间 > 1 秒,用 : 并行
  • 当响应时间最重要,并 < 1 秒,用 : 并发收集器

用 G1 收集器条件 :

  • 50% 以上的堆被存活对象占用
  • 对象分配和晋升的速度变化非常大
  • 垃圾回收时间较长

开启垃圾收集器 :

# 串行
-XX:+UseSerialGC
-XX:+UseSerialOldGC


# 并行(吞吐量优先)
-XX:+UseParallelGC
-XX:+UseParallelOldGC


# 并发收集器(响应时间优先)
-XX:+UseConcMarkSweepGC
-XX:+UseG1GC
举报

相关推荐

0 条评论