美文网首页
【029】2020.12.12 周六 Java JVM调优案例0

【029】2020.12.12 周六 Java JVM调优案例0

作者: 算法成瘾者 | 来源:发表于2020-12-12 10:13 被阅读0次
    JVM调优案例05

    JVM调优案例05

    1.由安全点导致长时间停顿

        1.1) 问题

            一HBase集群垃圾回收时间常常在3秒以上

        1.2) 原因

            HBase的RPC Server的Listener线程执行到了一个连接超时清理函数的可数循环里,因为是int 索引,HotSpot没有设置安全点,导致GC时,必须等待所有循环都跑完才能进入到安全点,表现为长时间的停顿

        1.3)  解决

            把循环索引的数据类型从int修改为Long,作为不可数循环设置安全点,不用等待所有循环都跑完就鞥进行垃圾回收

        1.4) 其他

            三个时间概念

                    ==user: 进程执行用户态代码所花费的处理器时间

                    ==sys: 进程执行核心态代码所花费的处理器时间

                    == real: 执行动作从开始到结束时所花费的时钟时间

    2. Eclipse运行速度调优

          2.1) 概述

            使用作者自行编写的Eclipse的插件,获取到Eclipse的启动时间是15秒,GC耗时4秒多,加载类也是4秒多即时编译约2秒

        2.2) 升级JDK版本的性能变化和兼容问题

           ==问题

                升级JDK5到JDK6后Eclipse报OOM

           ==原因

                使用VisualVM 查看,原来是默认的永久代的空间大小为64MB,太小了,所以发生了OOM            

           ==解决

                手动设置永久代的空间大小为250MB

    2.3) 编译时间和类加载时间的优化

        JDK6取消字节码校验启动时间比JDK5稍快

        HotSpot的2个编译器

            JIT编译

            即时编译

    2.4)调整内存设置控制垃圾收集频率

        把新生代铜梁提升到128MB避免动态内存扩展

        屏蔽系统的显性垃圾回收System.gc()

    相关文章

      网友评论

          本文标题:【029】2020.12.12 周六 Java JVM调优案例0

          本文链接:https://www.haomeiwen.com/subject/zheegktx.html