注:通過上面內容可以看到,哪個類的方法執行時間長,耗費了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