私はPool.map
採点手順に使用しています:
- データソースからの何百万もの配列を持つ「カーソル」
- 計算
- 結果をデータ シンクに保存する
結果は独立しています。
メモリ需要を回避できるかどうか疑問に思っています。最初は、すべての配列が python に入り、次に 2 と 3 が進んでいるようです。とにかく速度が向上しました。
#data src and sink is in mongodb#
def scoring(some_arguments):
### some stuff and finally persist ###
collection.update({uid:_uid},{'$set':res_profile},upsert=True)
cursor = tracking.find(timeout=False)
score_proc_pool = Pool(options.cores)
#finaly I use a wrapper so I have only the document as input for map
score_proc_pool.map(scoring_wrapper,cursor,chunksize=10000)
私は何か間違ったことをしていますか、この目的のためにPythonでより良い方法がありますか?