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

jvm调优面试题(Jvm调优)

时间2025-05-04 23:33:59分类IT科技浏览3654
导读:首先我们可以使用各种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
adsl灯一直闪怎么解决(ADSL Modem看灯怎么判断故障?)