2012-08-27 69 views
0

我正在運行需要大量內存的腳本...... 我可以使用reset清除所有變量,所以我有記憶清晰的第二次運行... 但是我的問題內存是我怎樣才能在循環中輸入這個reset,所以在每次運行後它都會自行清除內存。休息蟒蛇從腳本

感謝讚賞

+3

'reset' ??那是什麼? –

+0

重置:重置命令行中的所有變量 – CharlieShe

+0

我不知道你在說什麼..它可能是一個命令在你的shell(!= python shell)中,它不會做你認爲它的作用。 –

回答

0

如果你正在MemoryError例外,你可能會考慮重寫你的腳本編寫到數據庫或文件,而不是拿着所有的數據在內存中。對此,一些不錯的選擇是MySQL,RedisMongo,其中有很多很多。

當然,如果您可以在代碼中找到無效或不必要地使用內存的地方,也可能完全避免使用所有這些數據庫內容。如果你發佈你的代碼,我肯定人們會很高興看到!例如,如果您有大量的list comprehensions存儲大量數據,一次只能處理一個項目,您可以通過切換到generator expression來節省相當不錯的內存。

1

如果你有一個需要大量內存的腳本,我會建議在一個單獨的進程中運行它(它會自動清理)。您可以通過做到這一點:使用一些其他的腳本來啓動工人(如bash

  • 使用Python subprocess啓動工作進程

  • 0

    Python解釋器利用垃圾回收來釋放內存未使用的對象。通常情況下,這個過程不需要任何手動修正。但是,您可以使用gc模塊提前收集垃圾。 http://docs.python.org/library/gc.html

    這將爲您的腳本釋放一些內存。