JDK11(LTS) VM & GC

原文:https://docs.oracle.com/en/java/javase/11/vm/java-virtual-machine-technology-overview.html#GUID-982B244A-9B01-479A-8651-CB6475019281
https://docs.oracle.com/en/java/javase/11/gctuning/introduction-garbage-collection-tuning.html#GUID-326EB4CF-8C8C-4267-8355-21AB04F0D304

GC

Parallel Collector

parallel压缩是支持并行执行major的特性。没有并行压缩,major使用单线程执行,明显限制扩展。并行压缩默认开启,-XX:+UseParallelGC。可以用-XX:-UseParallelOldGC关闭

The Mostly Concurrent Collectors

CMS和G1是两个并发收集器

  • G1:G1在特定硬件和操作系统配置上默认开启,可以用-XX:+UseG1GC显式开启
  • CMS:-XX:+UseConcMarkSweepGC能接受用处理器资源换更短的时停
    CMS在JDK 9被deprecated

The Z Garbage Collector

ZGC是一个可扩展低延迟回收器。执行所有昂贵工作并发,不需暂停应用线程。
ZGC为需要低时延(10ms-)或超大堆(几TB)的应用使用。-XX:+UseZGC
ZGC是一个实验性特性,从JDK11开始

Selecting a Collector

除非你的应用有严格时停需求,先用VM选收集器。
如果必要,调整堆尺寸来改善性能。如果性能还是达不到目标,用以下准则选择:

  • 如果app性能峰值是第一要务/无时停要求或者1s+能接受,让VM选择或者-XX:+UseParallelGC
  • 如果响应时间比吞吐量更重要,时停必须控制小于1s,选择并发收集器-XX:+UseG1GC or -XX:+UseConcMarkSweepGC.
  • 如果响应时间很重要/使用很大堆,选择完全并发收集器-XX:UseZGC
    如果推荐收集器无法满足目标,先调整堆和代尺寸。如果性能还是不够,尝试用不同的收集器:用并发收集器减少时停,用parallel增加整体吞吐量

JVM

1 Java Virtual Machine Technology Overview

HotSpot主要技术特性

  • 自适应编译器:标准的拦截器被用来运行应用。当应用运行,代码会被分析来检测性能瓶颈或者热点。HotSpot编译性能关键部分代码来提高性能,不会编译很少使用的代码。使用自适应编译器决定如何使用inline之类的技术优化已编译代码
  • 快速内存分配和GC
  • 线程同步:提供线程控制能力,为使用大的共享内存的多处理器server伸缩设计
    从JRE9开始仅提供server VM
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值