如何提高CPU使用率

P陳
各位好:
用VB.NET 寫了一個程式,資料讀進來了,沒有對SSD硬碟作IO。
但程序的CPU使用率只有15%左右,系統的總使用許率不到 30%。

覺得跑起來有點慢,CPU 還有很多能量未發揮,大眼瞪小眼的
請問一下有無方法可以如何提高這個程式的CPU使用率



誰是誰
如果允許,就是靠平行運算搾 CPU
asakous
應該說明一下,資料讀進來你的程式要作什麼?才容易理解。不然標準的來說會用 multi thread 來處理。不然也可進 message queue 。用 worker 處理。
P陳
謝謝 誰是誰、asakous 二位的回應
Sorry 出差了幾天,剛才才回來

1.是從資料庫取出資料
2.放入 DataTable 中
3.在 Datatable 中一筆筆依序運算
4.因為下一筆的資料要等前一筆算完再算,所以不適合用平行運算
5.所有資料運算完後再回寫入資料庫

6.因為看到CPU才10來% 而已,磁碟只一點點在動,想問看看有沒有指令可以提高 CPU 的利用率,不然就只能乾秏而已
asakous
你的問題有口能不會程式端問題。更有可能是db端問題。
有兩種加快的方式。
1:用 db procedure 處理。可省去網路來來回回跟transaction commit 時間。
2:不要1筆筆 commit。要嘛1次寫完 commit。要嘛 數仟或數百筆 commit 1 次。
P陳
asakous 您好感謝回應:

目前是一次全部讀入資料表到記憶體中
----------------------------
一連串的計算 要處理連續計算的值 ,所以不能用平行運算
等全部算完了...... (這裏的CPU 約只用了18%左右) 要算很久
------------------------
再一次寫出
P陳
如果能該該程序的CPU使用率提高到 60%,就可以較快算完了。
asakous
set 程式 priority ? 能貼一下您的算法流程跟簡單資料嗎?也許有其它算的方式。
回到頂部