【大厂面试题】你进行过JVM调优吗?(亲身经历分享)

作者: 程序员鸡翅分类: 软件应用 发布时间: 2022-04-12 23:06:22 浏览:14123 次

【大厂面试题】你进行过JVM调优吗?(亲身经历分享)

小心开门g:
有调优经验吗?有。 一般什么时候调优呢?我一般面试时候进行调优。

【回复】[呲牙][呲牙][呲牙][呲牙]
oskyupup:
年轻代参数配置是不是写错了?--XX:Survivor代表eden区和suvivor比值吧,年轻代不是已经配置-Xmn=1G了么,怎么会是 4G*0.2=0.8G???[囧]

【回复】顶,都生产案例了,up就这么瞎算一通,这不误导人吗[喜极而泣]
【回复】离谱 我还在百度这是怎么费事
【回复】回复 @姓UP名主 :我以为就我感觉错了呢[呆]
可label:
第一4G的内存,年轻带是4*0.2?年轻带和老年代不是1:2的比例吗?第二元空间1.8是和内存空间保持一致的,动态改正的?你这案例漏洞百出啊

【回复】第一点确实有问题,应该是伊甸园区0.8G,两个幸存者区各0.1G,第二点的话元数据区默认值确实是21M,但是最大值不受限制,一旦超过这个值也是会触发FULL GC的,卸载未使用的类,然后会提高这个21M的阈值,保证当前元数据区占用大小和这个值之间保持一定的安全距离,对于JVM来说这个值是一个动态调整的值,所以设定一个高点的阈值对避免full gc确实有一定帮助。
枫桥听雨Vison:
原来的收集器stw时间太长了,所以使用cms,标记清除算法,更短的stw时间,但这个也要适当设置整理的次数,不然内存碎片比较多

你的雕砂到我了:
阿婆主你好,请问一下第二个标题,年轻代参数配置,-xms是堆大小,-xmx是最大堆大小,-xmn是年轻代大小,后面的4G*0.2=0.8又是什么的大小呀?

【回复】回复 @经典鸡翅 :E区应该是1024m*0.8=0.8g, S区是1024m*0.2=0.2g吧。
【回复】回复 @兰亭丶流水 :没毛病,8:1:1
nacrt:
感谢分享,还是希望能给下实战过程[呲牙],弄个小的demo模拟下场景,调优前后数据对比,这样既能增加可信度也能加深印象。

【回复】过程都这么详细了[笑哭][笑哭]生产环境调优上哪模拟demo去,数据最后面有对比耶
Leon_Hwang:
我可以说没有进行过调优,然后去说jvm 的知识吗?这样面试官是不是当我们没回答这个问题呢?

【回复】现实情况是,你说没有,就下一个问题了
【回复】看工作年限,年限低的说啥都没问题,只要是正确的就行,年限高的,就看面试官了
【回复】可以说的呀,证明你有基础,没问题的
山茶白咖啡:
提个建议。字体可以换个更有辨识度的

DXDDDW_HH:
请问up主如果gc回收器使用G1在这个例子的效果会怎么样呢?

【回复】回复 @经典鸡翅 :好的谢谢!
初冬的冰糖栗子:
up,请问一下,为什么高并发下,yongGC频繁,会导致本来应该在yongGC下应该回收的对象没有成功回收,并直接进入老年代呢?

【回复】高并发情况下,因为对象过多,年轻代空间不够,JVM判断新对象直接进入老年代,这样有大量朝生夕死的对象进入老年代,导致老年代提前full gc
【回复】下面这个解释可以吗? 幸存者区的对象是要经过一定次数的yongGC之后,超过这个阈值才到老年区,可能原来是10分钟5次,现在是5分钟5次,而阈值是5次,但是原来在幸存者区的可能呆6分钟就没有被引用可以被清理,然后现在是5分钟5次,不可能被回收,但是已经到了阈值,就直接到老年区。也就是说,年轻代空间设置不合理-》yongGC频繁=》减少了幸存者区被回收的概=》加快了幸存者区晋升的概率=》提高了full GC的频率
csdn-sir:
请问博主TP99变高,出现的毛刺具体是出现了什么问题?

皮皮不加班:
jdk8可以用G1吗?在jdk8里面官方不是说推荐使用吗?

这个ID狠温柔:
元空间不是不占用堆空间吗?还会出发fullgc吗

【回复】元空间堆储存静态变量和字符串常量池,其他的类信息加载保存在本地内存
沙卡拉卡来了:
有多少小公司需要JVM调优呢?学了很多但是用不上,大厂又需要有实际操作经验,小厂没有,直接死循环[笑哭]

【回复】多写点bug,调优就会来找你了[doge]
【回复】就好比既要应届毕业生,又要3年工作经验
【回复】回复 @沙卡拉卡来了 :太真实了,又要应届生,又要工作经验,说白了本质就是八股文

科技猎手 学习 编程 大厂 Java Java面试题 大厂面试题 打卡挑战 JVM调优 必剪创作

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!