Java 性能调优
- - 编程语言 - ITeye博客1.用new关键词创建类的实例时,构造函数链中的所有构造函数都会被自动调用. 但如果一个对象实现了Cloneable接口,我们可以调用它的clone()方法. clone()方法不会调用任何类构造函数. 在使用设计模式(Design Pattern)的场合,如果用Factory模式创建对象,则改用clone()方法创建新的对象实例非常简单.
Java性能调优作为大型分布式系统提供高性能服务的必修课,其重要性不言而喻。
好的分析工具能起到事半功倍的效果,利用分析利器JMC、JFR,可以实现性能问题的准确定位。
本文主要阐述如何利用JFR生成性能日志
JMC:Java Mission Control
JFR:Java Flight Recorder
JVM_OPT中添加:-XX:+UnlockCommercialFeatures -XX:+FlightRecorder
登陆服务器,找到应用PID,执行命令:jcmd $PID JFR.start name=abc,duration=120s
等待至少duration(本文设定120s)后,执行命令:jcmd $PID JFR.dump name=abc,duration=120s filename=abc.jfr(注意,文件名必须为.jfr后缀)
执行命令:jcmd $PID JFR.check name=abc,duration=120s
执行命令:jcmd $PID JFR.stop name=abc,duration=120s
切回开发机器,下载步骤3中生成的abc.jfr,打开jmc,导入abc.jfr即可进行可视化分析