2017-05-04 435 views
0

我在Windows下使用Python和Tensorflow庫編寫深度學習軟件。有時候我錯誤地將太多內存加載到內存中,並且計算機停止響應;我甚至無法殺死這個過程。如何在Windows下限制Python中的內存和CPU使用率?

是否可以在Windows下限制Python腳本的內存和CPU使用率?我使用PyCharm作爲編輯器。在UNIX系統下,似乎有可能使用resource.RLIMIT_VMEM,但在Windows下我得到通知no module named resource

+0

通常你的操作系統應該注意,沒有任何進程使其他進程不負責任。也許你可以使用一些Windows工具來限制CPU /內存?看到[這](http://stackoverflow.com/questions/4208/windows-equivalent-of-nice)爲CPU,也許[這](http://stackoverflow.com/questions/192876/set-windows-process - 或 - 用戶內存限制)的內存。 – syntonym

+1

Windows爲此使用Job對象,但在Windows 8之前,進程一次只能處於一個作業中,一旦進程處於作業中,就無法將其刪除。另外,如果作業沒有被命名,則沒有合理的方法來處理它以修改其限制。如果允許子進程脫離當前作業,則腳本可以重新生成並創建新的作業。 – eryksun

回答

-2

限制CPU使用率是一種不好的做法。你做錯了什麼,修復它而不是解決它。

你說:

有時錯誤,我加載了太多到內存和 停止響應的計算機;

你究竟意味着什麼錯誤?你應該從錯誤中吸取教訓。

我建議在獨立的thread中運行繁重的處理部分,以便您的腳本不會停止響應。

0

當然,您可以使用Win32作業API(CreateJobObject & AssignProcessToJobObject)將您的程序作爲子進程產生並管理其資源。

但我想一個更簡單的解決方案,不用經歷所有編碼的麻煩,就是使用Docker來創建一個託管環境。