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

jvm调优面试题(Jvm调优)

时间2025-06-16 09:08:53分类IT科技浏览4405
导读:首先我们可以使用各种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
macbookair 双系统切换(苹果 Mac双系统如何切换?用Option键切换双系统的步骤分享) 网站结构优化建议(网站结构优化案例)