分析CPU佔用率過高的問題

2021-06-12 10:00:54 字數 531 閱讀 5960

cpu佔用率過高的原因:1、**中存在死迴圈;2、演算法過於複雜。對於演算法過於複雜而導致的cpu佔用率過高的問題,分析起來並不容易。下面提供一種方法,不管你對**的邏輯以及業務的需求是否了解,只要掌握了這種方法,都可以將問題定位出來。

我們都知道,在linux、unix下都有效能統計工具,通過top命令,我們可以看到某個程序所占用的cpu。

第一步,找到cpu到底被誰吃了,

通過 top  -p  pid  命令檢視程序的cpu佔用率,在top命令的介面輸入「h」,檢視該程序所有的執行緒的統計情況(cpu佔用率等)。通過top的h命令,可以獲取到如下詳細資訊:每個執行緒消耗了多少cpu(h命令下,pid列是指執行緒id)。找到cpu佔用率高的執行緒id,並記錄下來。

第二步:列印執行緒堆疊

『    在linux下,可以通過kill -3  pid命令獲取執行緒堆疊。注意,在啟動程序時,需要將程序重定向到檔案中,否則執行緒堆疊無法列印。

第三步:根據pid找到對應執行緒堆疊中的執行緒

知道執行緒在做些什麼之後,就很容易地位出有問題的**啦。。到此,大功告成。

java應用CPU佔用率過高問題的分析

1 top中按shift h查詢哪個執行緒占用高 2 top h p pid命令檢視哪個執行緒占用高 3 ps mp pid o thread,tid,time printf x n thread id使用jstack pid可以匯出進行下的所有執行緒資訊,並用上步獲得的16進製制執行緒id去查詢問...

Windows CPU佔用率過高

今天除錯程式,發現 windows7 的cpu 佔用率一直為 25 左右,如下圖所示。四核 25 換成單核那就是 100 的佔用率了!上圖進入 程序 頁面,單擊 cpu 列,將根據 cpu佔用率進行排序。結果發現程序 svchost.exe 的cpu 佔用率為 25 記憶體占用達到了2g!記住svc...

檢視CPU佔用率

檢視系統cpu佔用率 在跑一些程式,例如deep learning的時候,總是希望檢視一下cpu gpu 記憶體的使用率 1.cpu 記憶體 使用top命令 top 有乙個更直觀的監測工具,叫htopsu doap t ge tins tall htop s ud oapt get inst all...