1

ディスクに保存されている Pickled データがあり、サイズは約 100 MB です。

私のpythonプログラムが実行されると、選択されたデータがcPickleモジュールを使用してロードされ、すべて正常に機能します。

たとえば、python を複数回実行するとpython main.py、各 python プロセスは同じデータを複数回ロードしますが、これは正しい動作です。

どうすれば、すべての新しいpythonプロセスがこのデータを共有するので、メモリに一度だけロードされますか?

4

2 に答える 2

2

Unix を使用している場合、1 つの可能性は、データをメモリにロードしてから、スクリプトを使用os.fork()して一連のサブプロセスを作成することです。サブプロセスがデータを変更しようとしない限り、追加のメモリを使用することなく、親のコピーを自動的に共有します。

残念ながら、これは Windows では機能しません。

PS Python オブジェクトを共有メモリに配置することについて尋ねたことがありますが、簡単な解決策はありませんでした。

于 2012-05-11T12:08:44.493 に答える