Pythonでメモリを明示的に解放するにはどうすればいいですか? 質問する

Pythonでメモリを明示的に解放するにはどうすればいいですか? 質問する

大きな入力ファイルに基づいて三角形を表す数百万個のオブジェクトを作成する Python プログラムを作成しました。アルゴリズムは次のとおりです。

  1. 入力ファイルを読み込む
  2. ファイルを処理し、頂点によって表される三角形のリストを作成します。
  3. 頂点をOFF形式で出力します。頂点のリストの後に三角形のリストが続きます。三角形は頂点のリストのインデックスで表されます。

OFF の場合、三角形を出力する前に頂点の完全なリストを出力する必要があるため、出力をファイルに書き込む前に三角形のリストをメモリに保持する必要があります。その間、リストのサイズが原因でメモリ エラーが発生します。

一部のデータが不要になったので解放できることを Python に伝える最適な方法は何ですか?

ベストアンサー1

によるとPython 公式ドキュメントでは、ガベージ コレクターを明示的に呼び出して、参照されていないメモリを解放することができますgc.collect()。例:

import gc

gc.collect()

破棄したいものをマークした後、以下を使用してそれを実行する必要がありますdel

del my_array
del my_object
gc.collect()

おすすめ記事