前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一张图看懂JVM

一张图看懂JVM

作者头像
用户5927304
发布2019-07-31 14:58:10
4620
发布2019-07-31 14:58:10
举报
文章被收录于专栏:无敌码农无敌码农

在应聘Java程序员时,经常会被问到JVM相关的知识点。而市面上讲解JVM原理及结构的书籍及资料,要么晦涩难懂,要么断章取义。那么有没有一张比较清晰的图能够将JVM的整体轮廓有一个清晰的描述呢?

小码农特地为大家绘制了一张图,希望对大家有用!

图中涉及的各垃圾回收器特点如下:

1、Serial(新生代-串行-收集器)

  • 策略:标记-复制-清除;
  • 优点:简单高效,适合Client模式的桌面应用(Eclipse);
  • 缺点:多核环境下,无法充分利用资源;

2、parnew(新生代-并行-收集器)

  • 策略:标记-复制-清除;
  • 优点:多线程、独占式,多核环境下提高CPU利用率;
  • 缺点:单核环境下比Serial效率低;

3、Parallel Scanvenge(新生代-并行-收集器)

  • 策略:标记-复制-清除;
  • 优点:精准控制“吞吐量”、gc时间。吞吐量=执行用户代码时间/(执行用户代码时间+内存回收时间);
  • 配置参数(可通过参数精准调控):

4、Serial Old(老年代-串行-收集器)

  • 策略:标记-清除-整理;
  • 优点:简单高效;
  • 缺点:多核环境下,无法充分利用资源;

5、Parall Old(老年代-并行-收集器)

  • 策略:标记-清除-整理;
  • 优点:多核环境下,提高CPU利用率;
  • 缺点:单核环境下,比Serial Old效率要低;

6、CMS(老年代-并发-收集器);

  • 策略:标记-清除;优点:“停顿时间”最短;
  • 缺点:内存碎片(有补偿策略);
  • 适用场景:互联网Web应用的Server端、涉及用户交互、响应速度快;

7、G1(新生代&老年代-并行&并发-服务端收集器)

  • 策略:G1将内存划分为Region,避免内存碎片;
  • 优点:Eden、Survivor、Tenured不再固定,内存使用率更高;可控的STW时间,根据预期的停顿时间,只回收部分Region;
  • 适应场景:多核CPU,JVM占用内存比较大的情况(>4GB);
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-09-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 无敌码农 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档