jvm调优面试怎么答?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jvm调优面试怎么答?相关的知识,希望对你有一定的参考价值。
一.jvm分为年轻代,年老代,持久代1.年轻代:年轻代主要存放新创建的对象,垃圾回收会比较频繁。(稍微讲细一点就是即可,年轻代分成Eden Space和Suvivor Space。当对象在堆创建时,将进入年轻代的Eden Space。垃圾回收器进行垃圾回收时,扫描Eden Space,如果对象仍然存活,则复制到Suvivor Space。)
2.年老代:年老代主要存放JVM认为生命周期比较长的对象(在扫描Suvivor Space时,如果对象已经经过了几次的扫描仍然存活,JVM认为其为一个持久化对象,则将其移到Old Gen。)
3.持久代:持久代主要存放类定义、字节码和常量等很少会变更的信息。
二.引出gc算法
年轻代使用的是复制算法(避免频繁创建对象导致碎片过多,一般会对算法优化来规避算法占用内存的问题,优化后有效内存能近乎达到百分之90,估计也不会问那么多,点到为止)
年老代使用的标记-整理算法(因为较少的发生gc,使用标记整理算法提高内存利用率)
直观的对比:
效率:复制算法>标记-整理算法
内存整齐度:复制算法=标记-整理算法
内存利用率:标记-整理算法>复制算法
三.如何实施调优
jvm参数设置,根据机器性能为程序运行分配合理区大小
四.善后工作
使用jdk自带的jvisualvm,jconsole等工具监测程序是否发生线程阻塞,内存泄漏,以及观察gc频率是否存在异常等
以上是关于jvm调优面试怎么答?的主要内容,如果未能解决你的问题,请参考以下文章