2

私は2つの異なるプロジェクトのストレステストを行っています.1つはproxsmtpd - Cで書かれたsmtpプロキシで、もう1つはasyncoreとsmtpd pythonモジュールを使用して1時間以内に開発したsmtp_proxy.pyです。

負荷が高い状態で両方のプロジェクトを強調したところ、proxsmtpd は 1 秒あたり 400 の smtp セッションを保持できるのに対し、私の python プログラムは 1 秒あたり 160 の smtp セッションしか実行できないことがわかりました。

それで、私の質問は、非同期コアにいくつかのパフォーマンス制限があるためですか、それとも C プログラムの方が速いだけですか? それとも、非効率的な方法で非同期コアを使用している私ですか?

4

1 に答える 1

2

優れたCバージョンと優れたPythonバージョンがあれば、Cバージョンの方が高速でスケーラブルであるというのは公正な仮定だと思いますが、あなたの場合、プロファイラーを実行して、プログラムがスケールアップしていない理由と場所を確認することをお勧めしますC版と同じくらい。おそらく、タイトなスポットを見つけて最適化し、コードのパフォーマンスをさらに引き出すことができます。また、私は非同期コアについてあまり知りませんが、人々が非同期処理を実行したいときに最初に引き寄せられるように見える Python ライブラリはねじれています。したがって、おそらくそこにパフォーマンスの改善があります。

于 2010-01-07T17:35:29.693 に答える