導航:首頁 > 編程語言 > javacpu佔用高

javacpu佔用高

發布時間:2023-08-28 14:26:23

1. 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偏高的問題。

2. 哪些原因會造成java.exe佔用大量cpu資源

額,我知道的只有死循環,當一條線程在一個循環內,如果不間斷的跑這個循環,很容易就高內存

3. Java中CPU佔用過高問題如何解決

方法1
1.jps 獲取Java進程的PID。

2.jstack pid >> java.txt 導出CPU佔用高進程的線程棧。

3.top -H -p PID 查看對內應進程的哪個線程佔用CPU過高。

4.echo 「obase=16; PID」 | bc 將線程的PID轉換為容16進制,大寫轉換為小寫。

5.在第二步導出的Java.txt中查找轉換成為16進制的線程PID。找到對應的線程棧。

6.分析負載高的線程棧都是什麼業務操作。優化程序並處理問題。
方法2
1.使用top 定位到佔用CPU高的進程PID

top

通過ps aux | grep PID命令

2.獲取線程信息,並找到佔用CPU高的線程

ps -mp pid -o THREAD,tid,time | sort -rn

3.將需要的線程ID轉換為16進制格式

printf "%x\n" tid

4.列印線程的堆棧信息

jstack pid |grep tid -A 30

閱讀全文

與javacpu佔用高相關的資料

熱點內容
現在哪裡開設了編程課 瀏覽:230
漫一網路培訓學校有哪些 瀏覽:752
酷狗app如何在電腦同步播放 瀏覽:668
雲浮微信群 瀏覽:344
公司文件打不開 瀏覽:267
LOL的設置文件在哪裡 瀏覽:254
線上開庭是什麼app 瀏覽:526
新中大軟體怎麼設置文件夾 瀏覽:807
git刪除文件夾 瀏覽:353
皇室戰爭怎麼升級競技場 瀏覽:447
雅虎統計工具 瀏覽:741
edgepdf文件分類 瀏覽:901
cad為什麼捕捉不到外部參照文件 瀏覽:935
重慶一共有多少個網站 瀏覽:34
k8s配置文件env創建失敗 瀏覽:197
編程序在電腦上叫做什麼 瀏覽:92
qq閱讀可賺 瀏覽:21
怎樣查找web儲存文件圖片 瀏覽:681
人口檔案資料庫包括什麼信息 瀏覽:709
手機有什麼好玩的星戰網路游戲 瀏覽:15

友情鏈接