垃圾回收器好坏评价的标准?吞吐量和响应时间?生产环境中,如何选择合适的垃圾收集器?如何判断是否使用G1垃圾收集器?
垃圾回收器好坏评价的标准?吞吐量和响应时间?生产环境中,如何选择合适的垃圾收集器?如何判断是否使用G1垃圾收集器?你掌握的怎么样呢?
垃圾回收器好坏评价的标准?吞吐量和响应时间?
停顿时间和吞吐量基本概念
停顿时间:垃圾收集器进行垃圾回收中断应用执行响应的时间
吞吐量:运行用户代码时间/(运行用户代码时间+垃圾收集时间)
停顿时间和吞吐量优势之处
停顿时间越短就越适合需要和用户交互的程序,良好的响应速度能提升用户体验;
高吞吐量则可以高效地利用CPU时间,尽快完成程序的运算任务,主要适合在后台运算而不需要太多交互的任务。
生产环境中,如何选择合适的垃圾收集器
oracle官网给出的建议
- 优先调整堆的大小让服务器自己来选择
- 如果内存小于100M,使用串行收集器
- 如果是单核,并且没有停顿时间要求,使用串行或JVM自己选
- 如果允许停顿时间超过1秒,选择并行或JVM自己选
- 如果响应时间最重要,并且不能超过1秒,使用并发收集器
如何判断是否使用G1垃圾收集器
判断是否使用G1垃圾收集器标准
JDK 7开始使用,JDK8非常成熟,JDK9默认的垃圾收集器,适用于新老生代。
是否使用G1收集器?
适用的场景,这个做一个简单的翻译:
(1)50%以上的堆被存活对象占用
(2)对象分配和晋升的速度变化非常大
(3)垃圾回收时间比较长
总结:
JVM知识在面试过程中非常高频,大家一定要牢牢掌握,如果以上文章有帮助到你,希望可以点个关注,留下属于你的足迹,比心!我们下节再见哦。