我這我的挺懶的,因此我只寫下大概的步驟,具體你們能夠再去baidu或者google。java
Linux環境下:工具
CPU高問題的查找方法google
1:經過jstack命令將對應cpu高的進程的線程堆棧打印出來線程
2:經過top -H -p 將當時java進程的CPU線程列舉出來,找到佔用高的線程的PID進程
3:將PID經過計算器轉換成16進制數內存
4:將獲得的16進制數在第1步導出的jstack文件中進行查找定位到具體的調用堆棧io
內存高問題的查找方法map
1:經過jmap命令將對應內存高的進程的dump文件輸出,獲得的是.hprof文件方法
2:使用IBM的MAI工具,注意用這個版本MemoryAnalyzer-Incubation-0.8.0.20100120-win32.win32.x86;使用該工具將前面得出的dump文件導進去cpu
3:MAI工具可以幫你分析出哪一個地方佔用的內存較多