欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > java >内容正文

java

Java新生代垃圾收集器

发布时间:2023/12/20 java 48 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Java新生代垃圾收集器 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

Stop-the-World

  • JVM由于要执行GC而停止了应用程序的执行
  • 任何一种GC算法中都会发生
  • 多数GC优化通过减少Stop-the-World发生的时间来提高程序性能
  • Safepoint

  • 分析过程中对象引用关系不会发生变化的点;
  • 产生Safepoint的地方:方法调用;循环跳转;异常跳转等
  • 安全点数量要适中
  • JVM运行模式

    server

    启动较慢,程序运行速度较快,重量级的虚拟机

    client

    启动较块,程序运行速度较慢,轻量级的虚拟机

    新生代

    Serial收集器(-XX:+UseSerialGC , 复制算法)

    java虚拟机中最基本,也是历史最悠久的收集器

  • 单线程收集,进行垃圾收集时,必须暂停所有工作线程;
  • 简单高效,Client模式下默认的新生代收集器;

  • 几十M或一两百M垃圾收集只需几十毫秒到最多100毫秒之间

    ParNew收集器(-XX:+UseParNewGC , 复制算法)

  • 多线程收集,其余的行为、特点和Serial收集器一样
  • 单核执行效率不如Serial,在多核下执行才有优势
  • Parallel Scavenge收集器(-XX:UseParallelGC , 复制算法)

  • 比起关注用户线程停顿时间,更关注系统的吞吐量(适合后台运算,不需要太多交互运算的场景)
  • 在多核下执行才有优势,Server模式下默认的新生代收集器
  • 垃圾收集器之间的联系

    以下两个收集器之间有连线的代表可搭配使用;能搭配使用的原因是因为它们使用了部分相同的框架代码。

    词汇

    吞吐量 = 运行用户代码时间 / (运行用户代码时间+垃圾收集时间)

    总结

    以上是生活随笔为你收集整理的Java新生代垃圾收集器的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。