JVM面试题

1. 背景

储备足够多的知识是解决JVM调优的必要条件,努力掌握每一次机会,不断地去尝试,才能提高自己的水平

2. 面试题记录

2.1. 解释#年轻代垃圾回收机制

-Xms3G , -Xmx3G, -Xmn1G, -XX:SurvivorRatio=8 -XX:PrintGCDetails, -verbose:gc
eden区发生minor gc的时候有95% 以上的对象是垃圾对象

2.2 JVM调优

现象: TP99耗时偏高,有明显的毛刺,发现YGC和FGC频繁
解决: 频繁的YGC导致本该在YGC就被回收的对象进入了老年代,也导致了老年代继续触发FGC,频繁的STW,导致TP99偏高
优化目标:减少YGC的次数和耗时,减少FGC的次数和耗时

  1. 放大年轻代
  2. 元数据区的默认初始值只有21M,如果动态代理对象比较多,就会导致元空间进行FGC,导致STW,观察了一下元空间常住对象的大小,大概100M,直接指定元空间和最大容量为256M,防止动态调整
  3. 使用并发预清理

2.3 jvm垃圾回收算法

标记清除

复制算法

标记整理压缩

分代收集

相关推荐
devlei1 天前
从源码泄露看AI Agent未来:深度对比Claude Code原生实现与OpenClaw开源方案
android·前端·后端
努力的小郑1 天前
Canal 不难,难的是用好:从接入到治理
后端·mysql·性能优化
Victor3561 天前
MongoDB(87)如何使用GridFS?
后端
Victor3561 天前
MongoDB(88)如何进行数据迁移?
后端
小红的布丁1 天前
单线程 Redis 的高性能之道
redis·后端
GetcharZp1 天前
Go 语言只能写后端?这款 2D 游戏引擎刷新你的认知!
后端
宁瑶琴1 天前
COBOL语言的云计算
开发语言·后端·golang
普通网友1 天前
阿里云国际版服务器,真的是学生党的性价比之选吗?
后端·python·阿里云·flask·云计算
IT_陈寒1 天前
Vue的这个响应式问题,坑了我整整两小时
前端·人工智能·后端
Soofjan2 天前
Go 内存回收-GC 源码1-触发与阶段
后端