注:通过上面内容可以看到,哪个类的方法执行时间长,耗费了cpu时间,一目了然,方便我们快速定位问题。
2、命令的具体讲解
hprof不是独立的监控工具,它只是一个java agent工具,它可以用在监控Java应用程序在运行时的CPU信息和堆内容,使用java -agentlib:hprof=help
命令可以查看hprof的使用文档。
通过上图可以看到这个工具非常强大,可以统计的东西很多,上面的例子统计的是cpu时间,同样我们还可以统计内存占用的dump信息。
如:-agentlib:hprof=heap,format=b,file=/test.hprof
这个hprof小工具,非常方便我们在用JUnit自测代码的时候结合使用,既可以解决业务上的BUG,又能够在一定程序上解决可发现的性能问题,非常实用。
二、性能排查工具-pidstat
1、示例演示
例子程序:
/**
* PROJECT_NAME: test
* DATE: 16/7/22
* CREATE BY: chao.cheng
**/
public class PidstatTest {
public static class PidstatTask implements Runnable {
public void run() {
while(true) {
double value = Math.random() * Math.random();
}
}
}
public static class LazyTask implements Runnable {
public void run() {
try {
while (true) {
Thread.sleep(1000);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
new
原文转自:http://www.jianshu.com/p/6df2963fe94e