我已经创建了一组TCP服务器的演示,但是我的gevent示例明显变慢了.我真的没有测试性能,但目前正在使gevent版本慢5倍.
我肯定必须是我如何编译gevent但无法解决问题.我使用fink编译的python 2.6和2.7使用OSX leopard.我已经尝试了稳定的gevent和gevent 1.0b1,它的行为是一样的.回声需要5秒钟才能响应,其他示例需要<1秒.如果我删除了urllib调用,那么问题就会消失.
我把所有代码都放在https://github.com/djay/geventechodemo中
要运行示例,我正在使用zc.buildout来构建
$ python2.7 bootstrap.py
$ bin/buildout
Run Code Online (Sandbox Code Playgroud)
要运行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
Run Code Online (Sandbox Code Playgroud)
这将需要3-4秒来响应我的系统.
但是线程的例子
$ bin/py threadecho2.py
Run Code Online (Sandbox Code Playgroud)
或扭曲的例子
$ bin/py twistedecho2.py
Run Code Online (Sandbox Code Playgroud)
不到1秒.知道我做错了什么吗?