㈠ java如何定位佔用CPU比較高的問題
一、確定消耗CPU的Java進程
備註:
1、jstack 輸出的堆棧信息,線程id對應的16進制為小寫,查找時要統一按照小寫方式查找
2、jstack輸出為當前瞬間的堆棧信息,如果遇到間斷性出現CPU高的問題時,需要多輸出幾次
從上面方式定位到代碼Test.main(Test.java:4)處導致了CPU偏高的問題,那我們查看下代碼具體如何實現的?
代碼實現:
public class Test {
public static void main(String[] args) {
while(true) {
}
}
}
從代碼層面看該處實現了一個死循環,所以導致了線程佔用CPU偏高的問題。
㈡ java 怎麼查看伺服器的CPU使用率
1、確定當前系統安裝的jdk是1.6版本以上
2、windows系統中有獲取cpu使用率的可執行文件exe,只要在java中獲取該文件的執行路徑,通過Java調用即可。
3、獲取操作系統可執行文件目錄procCmd
4、調用java的Runtime.getRuntime().exec執行cmd應用程序
5、利用java中sleep來計算睡眠前後cpu的忙碌時間與空閑時間,因為sleep不會釋放系統資源
6、根據忙碌時間占總時間的比例來計算cpu使用率!