並列スレッドのパフォーマンスを向上させるために、シングルスレッドスクリプトをマルチスレッドスクリプトに入れたいと考えています。 ボトルネックは、レジストラを要求するためのレイテンシです。パフォーマンスを向上させるために1つ以上の要求を出したいと思っています。シングルスレッドをマルチスレッドのPythonスクリプトに変換する方法は?
find_document = collection.find({"dns": "ERROR"}, {'domain': 1, '_id': 0})
for d in find_document:
try:
domaine = d['domain']
print(domaine)
w = whois.whois(domaine)
date = w.expiration_date
print date
collection.update({"domain": domaine}, {"$set": {"expire": date}})
except whois.parser.PywhoisError, err:
print "AVAILABLE"
collection.update({"domain": domaine}, {"$set": {"expire": "AVAILABLE"}})
どのような方法が最適ですか?マップにプールを使用しますか?別の方法?
ご回答いただきありがとうございます。
まず、マルチスレッド/マルチ処理で何をしたいかを判断する必要があります。ファイル書き込みを待機している間にダウンタイムを利用したいですか?これがバックグラウンドで計算されている間、ユーザーのインタラクティビティを維持したいですか?より多くのコアを使用してパフォーマンスの向上を目指していますか? – Aaron
私はより多くのコアを使用してパフォーマンスを向上させたいと考えています。 – LionelF
コンピューティング速度、ファイル書き込み、またはネットワーク速度が制限されているかどうかは分かりますか? (あなたがインターネットを扱っているのであれば、おそらくソケット待ちです。)(これを反映するように問題をアップデートするか、誰かがあまりにも広すぎるとフラグを立てるかもしれません) – Aaron