2017-02-19 5 views
0

私は10,000のファイルを持っています。これらのファイルからいくつかの情報を抽出し、これらの情報をmongodbに書き込むためにPythonコードを使用します。これらの操作はすべて、1台のローカルコンピュータで実行されます。ファイルを処理した後にmongodbに書き込む

私は物事をスピードアップするために、すべての操作を並行して行うために、Pythonのマルチプロセッシングパッケージを使用できますか?それを行うためのより良い方法はありますか?

答えて

0

はい、マルチプロセッシングは作業負荷の分散に役立ちます。たとえば、マシンに8つのコアがある場合、およそ8つのPythonプロセスがおそらくスループットを最大化します。それ以上にディスクI/Oの競合やCPU時間のためのMongoDBサーバーとの競合がボトルネックになります。 「multiprocessing.Pool.map」機能は、プロセス間で作業を分割するために特にエレガントです:

https://docs.python.org/2/library/multiprocessing.html#using-a-pool-of-workers

+0

ありがとう!私は複数のプロセスがMongoDBの同じコレクションに書き込もうとすると問題が起こると心配していました。 – Jack

+0

ただ試してみましたが、問題はありません! – Jack

+0

MongoDBのスレッドセーフで、多くの接続から同時に書き込むことができます。 –

関連する問題