我在16GB RAM和64位操作系統的Linux機器上運行Python 2.7。我寫的python腳本可能會將太多的數據加載到內存中,這會使機器變慢,甚至無法再殺死進程。限制內存使用量?
雖然我可以通過調用限制內存:運行腳本之前
ulimit -v 12000000
在我的殼
,我想包括腳本本身限制選項。在我看來,resource
模塊被引用爲具有與ulimit
相同的功率。但撥打電話:
import resource
_, hard = resource.getrlimit(resource.RLIMIT_DATA)
resource.setrlimit(resource.RLIMIT_DATA, (12000, hard))
在我的腳本開頭什麼都沒做。即使設置低至12000的值也不會使程序崩潰。我試過與RLIMIT_STACK
相同的結果。奇怪的是,打電話:
import subprocess
subprocess.call('ulimit -v 12000', shell=True)
什麼都不做。
我在做什麼錯?我在網上找不到任何實際的使用示例。
是否有任何空間讓程序更具內存效率? – TigerhawkT3
有,但那需要一段時間。目前,我需要測試它並確保它不會關閉計算機。並且,對內存進行失效保護也將在以後使用。 – Arne
因爲它是在Python 2.7中,所以如何切換到Python 3並在程序中使用2到3的轉換器?與Python 2相比,Python 3有幾個性能改進,其中一些與內存相關。 – TigerhawkT3