2012-12-06 164 views
0

我有一個使用大量CPU資源的python程序。雖然在我的普通PC上沒問題,但恐怕對我的Raspberry Pi來說可能太多了。速度不是問題。我不關心我的代碼是否慢慢執行,因爲我正在實現一個每隔幾個小時只執行一次代碼的實時系統,但是我的CPU需要被釋放,因爲我也會同時運行其他進程。無論如何,我可以通過犧牲執行速度來減少CPU花費的資源嗎?任何幫助,將不勝感激,謝謝如何通過python程序減少CPU和內存使用量?

+0

我們需要查看代碼才能提供幫助。你沒有提到什麼程序的作用。我唯一能夠看到代碼的地方是確保循環和線程正在使用足夠的阻塞/睡眠,同時等待信息處理。 –

+0

如果你想知道你在做什麼以及如何做,這將會非常有幫助。一般來說,加速Python的策略是使用分析來隔離代碼中CPU佔用最多的部分,然後使用C或Cython重寫它們。 –

+0

我正在使用PyBrain庫中的神經網絡。有沒有辦法限制整個程序的CPU使用率?我在我的Raspberry Pi中使用Debian,有沒有一種方法可以在linux或python中執行此操作? – user17151

回答

3

雖然你肯定可以修補你的程序,並使其更優化,事實是,所有程序通常旨在採取儘可能多的CPU,因爲他們需要在最短的時間內完成可能。

我看到兩種方式來實現自己的目標:

  1. 樹莓派是Linux的吧?所以只需降低運行腳本的python解釋器的進程優先級即可。這將確保其他程序可以有CPU,如果他們需要它

  2. 在腳本中,睡幾毫秒每隔幾毫秒..難看,但可以做的伎倆

但選項之一可能的路要走。

+0

非常感謝,我不敢相信我沒有想到選項一。我可能會嘗試睡眠以及組合。非常感謝 – user17151

+0

@ user17151我建議你先嚐試降低優先級,因爲有太多睡眠的代碼會非常難看;) ps:並且根據你的實現可能很難調試 – Paladin

+1

是的,我會感謝。我會把它作爲使用睡眠的最後手段。 – user17151