TCP サーバーの一連のデモを作成しましたが、私の gevent の例は著しく遅くなります。私は実際にパフォーマンスをテストしていませんが、現時点では gevent バージョンが 5 倍遅くなっています。
gevent をコンパイルした方法に違いないと確信していますが、問題を解決できません。fink でコンパイルされた python 2.6 および 2.7 を使用して OSX ヒョウを使用しています。安定した gevent と gevent 1.0b1 の両方を試しましたが、同じように動作します。エコーの応答には 5 秒かかりますが、他の例では 1 秒未満かかります。urllib 呼び出しを削除すると、問題は解決します。
すべてのコードをhttps://github.com/djay/geventechodemoに入れました
サンプルを実行するには、zc.buildout を使用してビルドします
$ python2.7 bootstrap.py
$ bin/buildout
gevent の例を実行するには:
$ bin/py geventecho3.py &
[1] 80790
waiting for connection...
$ telnet localhost 8080
Trying 127.0.0.1...
...connected from: ('127.0.0.1', 56588)
Connected to localhost.
Escape character is '^]'.
hello
echo: avast
私のシステムでは、応答に 3 ~ 4 秒かかります。
ただし、スレッド化された例
$ bin/py threadecho2.py
またはねじれた例
$ bin/py twistedecho2.py
1 秒未満です。私が間違っていることは何か分かりますか?