0

多くのメモリを必要とするスクリプトを実行しています...すべての変数をクリアするために使用できるので、2回目の実行のためにメモリをクリアします...しかし、私の質問は、これをループresetに入力する方法です。resetそれ自体でメモリをクリアします。

感謝します

4

3 に答える 3

1

大量のメモリを必要とするスクリプトがある場合は、別のプロセスで実行することをお勧めします (自動的にクリーンアップされます)。これは、次のいずれかの方法で実行できます。

  • 他のスクリプトを使用してワーカーを起動します (例bash)
  • pythonサブプロセスを使用してワーカー プロセスを起動する
于 2012-08-27T13:32:47.253 に答える
0

Pythonインタープリターは、ガベージコレクションを利用して、未使用のオブジェクトのメモリを解放します。通常、このプロセスでは手動による修正は必要ありません。ただし、 gcモジュールを使用してスケジュールされるよりも早くガベージを収集できます。http://docs.python.org/library/gc.html

これにより、スクリプトのメモリが解放されます。

于 2012-08-27T14:18:38.090 に答える
0

MemoryError例外が発生する場合は、すべてのデータをメモリに保持するのではなく、データベースまたはファイルに書き込むようにスクリプトを書き直すことを検討してください。これには、 MySQLRedis、およびMongoなど、非常に多くの選択肢があります。

もちろん、メモリが非効率的または不必要に使用されているコード内の場所を見つけることができれば、このデータベース関連のすべてを完全に回避することも可能です。あなたのコードを投稿すれば、喜んで覗き見してくれるはずです!

例として、一度に 1 つの項目を処理する大量のデータを保持する大規模なリスト内包表記がある場合、代わりにジェネレーター式に切り替えることで、メモリをかなり節約できる可能性があります。

于 2012-08-27T13:28:25.433 に答える