Всем привет, Взял примеры http демонов с http://twistedmatrix.com/trac/ и http://search.cpan.org/perldoc?AnyEvent::HTTPD
чуть допилил до похожего на реальность - они сериализуют запрос в json и кладут в редис, алгоритм вроде идентичный, однако судя по тестам ab -c 100 -n 10000 'http://localhost:8080/?param=value1¶m2=value2&tid=6666' twisted чуть больше чем в три раза быстрее (~1500 req/sec против ~500 req/sec), пробовал убрать json и редис в перловом демоне - разницы нет, он такой же медленный Что не так - нужно выбросить AnyEvent::HTTPD ? тюнить AnyEvent или юзать Twisted ? исходники в аттаче, тестил на обычном писюке с Ubuntu
import redis
from json import dumps
from twisted.web import server, resource
from twisted.internet import reactor
class HelloResource(resource.Resource):
isLeaf = True
numberRequests = 0
r_server = redis.Redis("localhost")
def render_GET(self, request):
self.numberRequests += 1
request.setHeader("content-type", "text/plain")
req = dumps(request.args)
tid = request.args['tid'][0]
try:
self.r_server.set(tid, req)
return tid
except:
request.setResponseCode(500)
return '500 error'
reactor.listenTCP(8080, server.Site(HelloResource()))
reactor.run()
anyevent-http.pl
Description: Perl program
-- Moscow.pm mailing list [email protected] | http://moscow.pm.org
