Stworzyłem zestaw demonstracji serwera TCP, ale moje przykłady gevent są znacznie wolniejsze. Naprawdę nie testuję wydajności, ale w tej chwili coś sprawia, że wersja gevent 5 razy wolniej.gevent urllib jest powolny
Jestem pewna, że musiałem opracować geentę, ale nie mogę rozwiązać problemu. Używam lamparta OSX przy użyciu skompilowanego pythona 2.6 i 2.7. Próbowałem zarówno stabilny gevent i gevent 1.0b1 i działa tak samo. Echo trwa 5 sekund, aby odpowiedzieć, gdzie inne przykłady zajmują 1 sekundę. Jeśli usunę wywołanie urllib, problem zniknie.
umieścić cały kod w https://github.com/djay/geventechodemo
Aby uruchomić przykłady Używam zc.buildout więc budować
$ python2.7 bootstrap.py
$ bin/buildout
Aby uruchomić gevent przykład:
$ 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
ten zajmie 3-4 sekundy, aby odpowiedzieć na mój system.
Jednak gwintowany przykład
$ bin/py threadecho2.py
lub skręcone przykład
$ bin/py twistedecho2.py
Czy mniej niż 1s. Masz pojęcie, co robię źle?
To wydaje się zależeć od sieci lokalnej. W moim domu geven urlib call jest powolny w porównaniu do normalnego urlib, ale w biurze mają one tę samą prędkość. Bardzo dziwny. – djay