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

jvm调优面试题(Jvm调优)

时间2025-09-19 12:56:15分类IT科技浏览5646
导读:首先我们可以使用各种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
网络推广渠道有哪些?(网络推广工具:扩展您的业务潜力)