導航:首頁 > 編程語言 > 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佔用高相關的資料

熱點內容
去除思科配置文件中的號 瀏覽:196
運行的16位程序太多 瀏覽:1
蘋果mac用什麼軟體好學編程 瀏覽:681
ai中線段怎麼添加寬度配置文件 瀏覽:956
lol文件怎麼找不到game 瀏覽:142
aecc視頻教程 瀏覽:983
linux怎麼查看資料庫用戶名 瀏覽:182
cefs文件系統 瀏覽:404
學平面設計個編程哪個好 瀏覽:701
如何把編程文件轉為hex 瀏覽:80
清除蘋果地圖來自地址 瀏覽:233
已經打開的文件如何清理 瀏覽:685
視頻網站有什麼用 瀏覽:70
多個表格文件怎樣壓縮文件 瀏覽:729
cad文件大很卡如何解決 瀏覽:633
將java程序打包成apk 瀏覽:277
2021唱吧文件找不到了 瀏覽:463
華為p9手機文件管理 瀏覽:284
固定在工具欄的文件夾怎麼查找路徑 瀏覽:667
半條命2有幾個版本 瀏覽:333

友情鏈接