すべてが HTTP 要求を作成する複数のプロセスを実行すると、1 つよりも著しく高速になりますか?
を使用して約100万のURLを解析していますlxml.html.parse
最初に、単純に URL をループしてそれぞれを呼び出す Python プロセスを実行しlxml.html.parse(myUrl)
、メソッドの残りの部分がデータを処理するのを待ってから、再度実行しました。このようにして、10000
urls/hour の順序で処理することができました。
いくつかの同じプロセスを (異なる URL のセットを処理して) 実行すると、これらの URL を取得できる速度が速くなると想像しました。驚いたことに、(少なくとも私にとっては)10400
今回は約 1 時間あたりの URL を測定しました。
私の質問は、これらのプロセスのうち 3 つを 1 つよりもはるかに高速に実行できないのはなぜですか?
私の要求が彼らのターゲットに意味のある影響を与えていないことは事実として知っているので、それは彼らではないと思います. これらの余分なプロセスを価値のあるものにするのに十分な帯域幅がありませんか? そうでない場合、どうすればこれを測定できますか? 私の MacBook がこれらのプロセスを実行する方法を完全に誤解していますか? (私は、異なるコアの同時スレッド、またはそれとほぼ同等のものを想定しています。) まったく別のものですか?
(私がウェブ用語を台無しにしてしまった場合はお詫びします -- 私はこの種のものに慣れていません。訂正していただければ幸いです。)
注: これらのプロセスを 3 つの異なるサーバーで実行すると、おそらく約 3 倍速くなると思います。(それは正しいですか?) 私はそれには興味がありません。最悪の場合、私の目的には 10000/時間で十分です。
編集:speedtest.netから(2回):
With 3 running:
Ping: 29 ms (25 ms)
Download speed: 6.63 mbps (7.47 mbps)
Upload speed: 3.02 mbps (3.32 mbps)
With all paused:
Ping: 26 ms (28 ms)
Download speed: 9.32 mbps (8.82 mbps)
Upload speed: 5.15 mbps (6.56 mbps)