[Twisted-Python] transport.write performance.

zipxing zipxing at hotmail.com
Tue Jul 30 20:15:26 MDT 2013


Great! pypy take 20% cpu, 3x fast than cpython!
Thanks!

A little problem: cjson and ujson can't install to pypy...

ZipXing

________________________________
> From: _ at lvh.io 
> Date: Tue, 30 Jul 2013 13:09:33 +0200 
> To: twisted-python at twistedmatrix.com 
> Subject: Re: [Twisted-Python] transport.write performance. 
> 
> Hi zipxing, 
> 
> You don't mention the interpreter. Is it CPython? What kind of results 
> do you get trying it on PyPy? 
> 
> Also, you don't need to specify epollreactor. Recent versions of 
> twisted will automagically choose the appropriate backend. I fixed this 
> and some other cleanups and got: 
> 
> ---- 
> from time import clock 
> from twisted.internet import protocol, reactor 
> from twisted.protocols import basic 
> 
> class MeasuringEchoProtocol(basic.LineReceiver): 
> MEASUREMENT_INTERVAL = 1000 
> 
> def lineReceived(self, data): 
> self.factory.requests += 1 
> if self.factory.requests % self.MEASUREMENT_INTERVAL == 0: 
> print "RPS: {0}".format(self.factory.requests / clock()) 
> 
> self.transport.write(data) 
> 
> 
> 
> class ServerFactory(protocol.ServerFactory): 
> protocol = MeasuringEchoProtocol 
> 
> def __init__(self): 
> self.requests = 0 
> 
> 
> 
> def main(): 
> reactor.listenTCP(9976, ServerFactory()) 
> clock() 
> reactor.run() 
> 
> if __name__ == '__main__': 
> main() 
> ---- 
> 
> Keep in mind that due to setup time few requests get handled right when 
> it starts, so the server RPS will take some time to balance out. On my 
> wimpy laptop on battery power, that was around 420.274404782. 
> 
> cheers 
> lvh 
> 
> _______________________________________________ Twisted-Python mailing 
> list Twisted-Python at twistedmatrix.com 
> http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python 		 	   		  


More information about the Twisted-Python mailing list