大量のスレッド(2000)を作成し、何かを処理してから書き出す基本的なpythonプログラムがあります。
コードを次のように絞り込みました (2k スレッド): URL fetch thread example on: http://www.ibm.com/developerworks/aix/library/au-threadingpython/
クラス内を除いて、私は文字通り何もしません(キューからアイテムを取得してから、タスクを完了に呼び出します)。この縮小バージョンと私が実行するバージョンの両方で、メモリ使用量は同じです。32 ビットの Python インタープリターでは、約 105 MB の仮想メモリを使用します。64 ビットでは、8 ギガ以上を使用します。
rhel 6 を実行しています。また、追加しました: threading.stack_size(32768) スタック サイズを小さくします。私はPythonが予約するメモリのデフォルトの制限を取得していると仮定していますが、その制限が何であるかを理解することはできません。
何か案は?
ありがとう!