iT邦幫忙

0

執行Python程式時,如何提升CPU及RAM的使用率?

  • 分享至 

  • xImage

請問在執行Python時,能夠提升CPU及RAM的使用率,進而加快程式執行的速度嗎?

我是使用最基本的IDEL在進行程式的開發。目前撰寫的一隻程式需要進行大量資料的反復計算。但執行程式時CPU的使用率只有15%左右,RAM的使用率大約落在0.8%,基本上沒有磁碟的讀取。

我已從工作管理員中確認設定預設是用所有的CPU來執行Python。不知道有沒有辦法讓程式可以使用更多CPU及RAM的資源來加快程式執行的速度?謝謝

froce iT邦大師 1 級 ‧ 2022-11-24 15:08:49 檢舉
要增加記憶體使用率就自己設計cache的機制,資料都讀到記憶體就用的多了。

要增加CPU使用率就先把大量計算的工作作分割,然後看下面:
https://docs.python.org/zh-tw/3/library/concurrent.futures.html#module-concurrent.futures

另外...IDLE!?
不弄個vscode 或 jupyter嗎?
lsesroom iT邦新手 2 級 ‧ 2022-11-25 09:58:44 檢舉
感謝,來研究看看
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
2
黃彥儒
iT邦高手 1 級 ‧ 2022-11-24 15:16:56

因為Python設計上就是沒有平行的概念,他有一個叫做全域直譯器鎖的咚咚。
以你CPU 15%的利用率來看,你大概是8核心的處理器,若你要吃滿所有CPU計算資源,你需要先獲得一些設計平行程式的技能,然後才能用例如multiprocessing的套件去榨乾處理器。
若是想要榨乾的對像是RAM,那可以學學DP或是Cache相關的知識點。

不過…沒必要手持鐵鎚看啥都釘子,都要學那麼多了,不如換個擅長平行運算的語言,例如Golang或是C++?

froce iT邦大師 1 級 ‧ 2022-11-24 16:07:11 檢舉

學其他語言要做concurrent也是要有鎖的概念,要不然寫出來也是...
不過golang的channel真的是頗讚。

lsesroom iT邦新手 2 級 ‧ 2022-11-25 10:02:05 檢舉

大概看了一下。所以只能想辦法將程式拆分成不同的任務,設計平行計算;沒辦法透過設定由IDE或OS分配資源,是這樣對吧?

0
海綿寶寶
iT邦大神 1 級 ‧ 2022-11-24 17:15:33

作業系統表示:

0
I code so I am
iT邦高手 1 級 ‧ 2022-11-25 09:41:23

python 支援 multi-thread 及 平行處理的機制,可加快處理速度,要增加RAM的使用,可使用 NumPy Array 宣告一個大型陣列,將資料放入後,一併計算,另外,如果計算是瓶頸,可使用 CUDA programming。

lsesroom iT邦新手 2 級 ‧ 2022-11-25 10:03:41 檢舉

感謝,我研究看看

我要發表回答

立即登入回答