C WinForm CPU占用過高

2021-06-26 01:21:32 字數 436 閱讀 9247

我的系統中使用了乙個while迴圈,發現導致cpu占用過高,基本會佔到14%左右。

**:

while (myqueuelist.count > 0)

由於該迴圈一直呼叫,導致cpu占用過高,中間使用sleep睡眠100好嘛,cpu基本呢沒有超過5%。

參考文章:

原因:程式中因為使用threadpool 多執行緒操作.form.invoke 用了很多,造成cpu占用 90%以上,甚至程式假死..... 我一度去掉所有lock資料庫操作什麼的**,都沒大的改善.....

解決方法:

每次呼叫完後. 讓她睡個300毫秒(system.threading.thread.sleep(300) ,你可以設定更小.) 整個世界清靜了,cpu沒超過10%.

ps:看來以後哄女人也可以效仿效仿....

實戰CPU占用過高問題定位

網上學習了cpu 占用過高如何快速定位的方法後,根據現有的專案實戰一次。廢話不多說了,直接展示定位的問題的詳細步驟。服務部署在linux伺服器,定位問題的方法,主要也是使用相關的linux命令與jdk檢視堆疊,gc日誌等相關命令。1.問題發現 top 檢視當前伺服器各個程序執行占用cpu,記憶體等情...

Ubuntu 20 04快取占用過高

在進行io密集型的工作之後,容易引起機器快取過高,影響程式執行效能。作業系統有被動的機制可以進行自動清理,但很消極。可以通過以下指令進行主動清理 清除pagecache echo 1 proc sys vm drop caches清除 slab分配器中的物件 包括目錄項快取和inode快取 slab...

linux 分析 程序cpu占用過高

重點是檢視程序的執行緒中,哪個執行緒占用cpu過高,然後用gdb附加到程序,除錯執行緒,看是否有死迴圈或者死鎖等問題,步驟如下 先用ps grep找出該死的程序pid,比如 1706 1.gdb attach 到程序號碼 1706 2.仍然在gdb中 info threads 結果大致如下 gdb ...