背负青天而莫之夭阏者,而后乃今将图南。
百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 互联网 > 面试题 > 正文

如何备战JVM调优面试?

swdejp 2023-09-11 190 浏览 0 评论

面试痛点

一些常见理论,如JVM内存模型,垃圾回收算法,垃圾回收器,类加载都背滚瓜烂熟。

但面试官问:你平时在工作中如何进行JVM优化?

很多人直接懵逼了,大部分工程师对JVM的掌握仅仅停留在JVM的一些理论知识,但是这些理论知识在你的系统运行时候的运行模型和原理,以及跟GC的各种关系,完全没有串联起来,也就是从理论实践脱节。

而且对线上系统如何监控JVM GC以及如何定位、分析以及解决频繁GC问题,完全没任何成体系的思路。仅仅看过网上一些凌乱博客,看过一些所谓JVM优化参数,仅仅就是背参数而已,以为设置了一些参数就一定没问题了。

现在的你应该如何在面试中回答JVM生产优化问题?

把之前学习过的知识,归纳总结出来一套通用的方法付论,然后面试的时候就聊这套通用方法论即可。

这个方法没有问题,很多面试官其实听到这套回答已经眼前一亮了,因为国内很少有人能把JVM生产优化的方法论总结的如此之系统。

但还不够,因为面试官想听的,实际上是你自己负责的系统是如何进行JVM优化的!

如果你的系统访问量和数据量暴增10倍或者100倍

所以你在这里应该思考的一个问题,就是你负责的系统,假设数据量和访问量暴增10倍,或者100倍,此时会不会频繁Full GC?

利用学习过的知识去倒推一下,其实很可能的,在有限的机器资源下,一旦压力增长,很可能因为内存分配不合理,导致频繁Full GC 的!

上面我们说过好几种频繁Full GC的触发条件,你是不是都可以放在自己的系统里去思考一下,自己的系统有没有可能会发生上述几种场景下的频繁Full GC?

如果会的话,那么一旦发生了,如何定位、分析和解决?

你应该把频繁Full GC问题和你自己的业务系统结合起来,自己深度思考,自己整理出来几个自己系统可能发生的JVM性能问题,然后整理出一套解决方案出来。

未来在面试的时候,应该结合自己的系统去跟面试官聊,说自己的系统可能在哪些情况下发生频繁Full GC,在压测的时候就发现了这些问题,然后你是如何进行JVM性能优化的!

这样面试官一定会认可你对JVM这块技术的掌握和实践经验的!

最后提点一句JVM的优化注意点

网上有很多博客会让你设置一些非常少见的JVM参数,比如之前有个案例就讲了,有人设置了软引用的一个参数,还有一些奇怪的参数,比如pagecache的参数之类的,以为JVM优化就是调节奇怪的参数,搞的很牛一样。

其实完全不是如此,真正的JVM优化,就是一些内存分配+垃圾回收器的选择(ParNew、CMS、G1)+垃圾回收器的常见参数设置, 还有就是一些代码层面的内存泄漏问题,其实搞定这些问题,99%的JVM性能问题你都能搞定了!

相关推荐

Vue 前端面试题
Vue 前端面试题

前端开发前言前几天整理了一些html+css+JavaScript常见的面试题(https://segmentfault.com/u/youdang...

7个月前 (10-21) swdejp

58 道 Vue 常见面试题集锦,涵盖入门到精通,自测 Vue 掌握程度

1.vue优点?答:轻量级框架:只关注视图层,是一个构建数据的视图集合,大小只有几十kb;简单易学:国人开发,中文文档,不存在语言障碍,易于理解和学习;双向数据绑定:保留了angular的特...

Web前端工程师面试之Vue问题汇总解析
Web前端工程师面试之Vue问题汇总解析

又是一年毕业季,很多学习前端的同学面对激烈的求职竞争倍感压力,想要了解企业招聘会提问哪些问题。今天千锋郑州Web前端培训小编就给大家分享一下高级Web前端工程师...

7个月前 (10-21) swdejp

60个Vue常见问题汇总及解决方案

Q1:安装超时(installtimeout)方案有这么些:cnpm : 国内对npm的镜像版本/*cnpm website: https:/...

前端面试题《Vue》

1.vue优点?轻量级框架:只关注视图层,是一个构建数据的视图集合,大小只有几十kb;简单易学:国人开发,中文文档,不存在语言障碍,易于理解和学习;双向数据绑定:保留了angular的特点,...

吊打面试官系列-58道vue面试题

1.vue优点?2.vue父组件向子组件传递数据?3.子组件像父组件传递事件?4.v-show和v-if指令的共同点和不同点?5.如何让CSS只在当前组件中起作用?6.的作用是什么?7.如何获...

前端来自真实大厂的532道面试题

前言面试题是来自微博@牛客网发布的真实大厂前端面经题目,我一直在收集题目长期一个一个的记录下来的,可能会有重复,但基本前端的面试大纲和需要掌握的知识都在其中了,面试题仅做学习参考,学习者阅后也要用心钻...

60个前端框架Vue常见问题汇总及解决方案

  Q1:安装超时(installtimeout)  方案有这么些:  cnpm:国内对npm的镜像版本  /*  cnpmwebsite:https://npm.taobao.org/  ...

前端面试题(十四)

项目开发1.项目开发中,目录机构是怎么设计的https://go.zbj.com/news/13471.html2.曾经用过哪些开发工具https://www.jianshu.com/p/af24...

前端 JS 笔试百题

单选题JS基础js概念与类型检测以下不属于typeof运算符返回值的是?A. "string"B. "function"C.&n...

java面试之JVM篇第五问--谈谈对 OOM 的认识?如何排查 OOM 问题?

除了程序计数器,其他内存区域都有OOM的风险。栈一般经常会发生StackOverflowError,比如32位的windows系统单进程限制2G内存,无限创建线程就会发生栈的OOM...

Java筑基(Tomcat+Mysql+设计模式+并发+Netty+JVM)

1.Java筑基(Tomcat+Mysql+设计模式+并发+Netty+JVM)以JVM面试题为例:Java类加载过程?描述一下JVM加载Class文件的原理机制?Java内存分配GC是什么...

深入浅出!2020年春招+秋招JVM面试题整理(附答案)

运行时数据区是什么?虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干不同的数据区,这些区域有各自的用途、创建和销毁时间。线程私有:程序计数器、Java虚拟机栈、本地方法栈。线程共享:...

如何备战JVM调优面试?

面试痛点一些常见理论,如JVM内存模型,垃圾回收算法,垃圾回收器,类加载都背滚瓜烂熟。但面试官问:你平时在工作中如何进行JVM优化?很多人直接懵逼了,大部分工程师对JVM的掌握仅仅停留在JVM的一些理...

「Android大厂必问面试题」有三个线程时如何确保按顺序执行?

题目:有三个线程T1,T2,T3,怎么确保它们按顺序执行?这道题想考察什么?是否了解多个线程顺序启动的方式有哪些与真实场景使用,是否熟悉多个线程顺序启动在工作中的表现是什么?考察的知识点多个线程顺序启...

取消回复欢迎 发表评论: