首页IT科技jvm调优面试题(Jvm调优)

jvm调优面试题(Jvm调优)

时间2025-08-04 16:53:09分类IT科技浏览4894
导读:首先我们可以使用各种JVM工具,查看当前日志,分析当前JVM参数设置,并且分析当前堆内存快照和gc日志,根据实际的各区域内存划分和GC执行时间,觉得是否进行...

首先我们可以使用各种JVM工具               ,查看当前日志                      ,分析当前JVM参数设置       ,并且分析当前堆内存快照和gc日志        ,根据实际的各区域内存划分和GC执行时间                      ,觉得是否进行优化              ,当然我们也可以直接生成堆的dump文件        ,进行分析                       ,比如GC时间超过1-3秒              ,或者频繁GC,则必须进行一个优化

 2.年轻代和年老代将根据默认的比例(1:2)分配堆内存                       , 可以通过调整二者之间的比率NewRadio来调整二者之间的大小                      ,也可以针对回收代

  比如年轻代,通过 -XX:newSize -XX:MaxNewSize来设置其绝对大小               。同样               ,为了防止年轻代的堆收缩                      ,我们通常会把-XX:newSize -XX:MaxNewSize设置为同样大小

3.年轻代和年老代设置多大才算合理   1)更大的年轻代必然导致更小的年老代       ,大的年轻代会延长普通GC的周期               ,但会增加每次GC的时间;小的年老代会导致更频繁的Full GC   2)更小的年轻代必然导致更大年老代                      ,小的年轻代会导致普通GC很频繁       ,但每次的GC时间会更短;大的年老代会减少Full GC的频率 如何选择应该依赖应用程序对象生命周期的分布情况:  如果应用存在大量的临时对象        ,应该选择更大的年轻代;如果存在相对较多的持久对象                      ,年老代应该适当增大                      。但很多应用都没有这样明显的特性       。 在抉择时应该根据以下两点:   1)本着Full GC尽量少的原则              ,让年老代尽量缓存常用对象        ,JVM的默认比例12也是这个道理   2)通过观察应用一段时间                       ,看其他在峰值时年老代会占多少内存              ,在不影响Full GC的前提下,根据实际情况加大年轻代                       ,比如可以把比例控制在11               。但应该给年老代至少预留1/3的增长空间
4.在配置较好的机器上(比如多核               、大内存)                      ,可以为年老代选择并行收集算法:-XX:+UseParallelOldGC****
5.线程堆栈的设置:每个线程默认会开启1M的堆栈,用于存放栈帧                      、调用参数       、局部变量等               ,对大多数应用而言这个默认值大了                      ,一般256K就足用
声明:本站所有文章       ,如无特殊说明或标注               ,均为本站原创发布                      。任何个人或组织                      ,在未征得本站同意时       ,禁止复制        、盗用                      、采集              、发布本站内容到任何网站        、书籍等各类媒体平台       。如若本站内容侵犯了原著者的合法权益        ,可联系我们进行处理        。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
linux bash命令详解(Linux文件管理与bash特性) 泛域名ssl证书如何使用(泛域名SSL证书多少钱一年 泛域名SSL证书申请(泛域名ssl证书免费申请))