Python Asyncore vs Plain Old c
質問
私は2つの異なるプロジェクトをテストしています。1つはcで書かれたproxsmtpd -smtpプロキシであり、もう1つは1時間以内に開発され、AsyncoreおよびSMTPD Pythonモジュールを使用して開発しました。
私は両方のプロジェクトを重い負荷で強調し、ProxSMTPDは400 SMTPセッション /秒を保持できることを発見しましたが、私のPythonプログラムは160 SMTPセッション /秒のみを実行できることがわかりました。
それで、私の質問は、Asyncoreにいくつかのパフォーマンスの制限があるか、Cプログラムがより速いので、それはそうですか?それとも、非効率的な方法でAsyncoreを使用しているのでしょうか?
解決
私はそれが与えられたのは公正な仮定だと思います 良い Cバージョンとa 良い Pythonバージョンでは、Cバージョンはより速く、よりスケーラブルになりますが、あなたの場合、プロファイラーを実行し、プログラムがCバージョンほどスケールアップしていない理由と場所を確認することをお勧めします。おそらく、タイトなスポットを明らかにし、それを最適化して、コードからさらにパフォーマンスを絞ることができます。また、私はAsyncoreについてはあまり知りませんが、最初のPythonライブラリの人々は、彼らが非同期のことをしたいときに引き寄せられているようです。だから、おそらくそこにはパフォーマンスの改善があります。
所属していません StackOverflow