Re: Why POE is slower then Python - Twisted ... quite a lot?
Daisuke Maki <[email protected]>
| Newsgroups | gmane.comp.lang.perl.poe |
|---|---|
| Message-ID | <[email protected]> |
I'm going to take a wild guess here: POE::Component::Pluggable. In looking at twister.news.nntp.py, it's a straigh nntp implementation, with a bunch of hook points. PoCo::Client::NNTP is built on top of POE::Component::Pluggable, and so does all dispatching via a context-less layer (i.e., PoCo::Pluggable doesn't know anything about NNTP or what have you), so dispatching works in a somewhat inefficient way. I suppose one could make it faster by inlining the dispatch code in PoCo::Plubble or something like that, though. --d howard chen wrote: > I have 2 simple scripts which connect to NNTP server to fetch 100 > articles (no writing to local disk) in order to test the performance > of two frameworks. > > I have found Twisted is faster by at least 2 times which make me surprised. > > I know it is not fair to compare two frameworks by this simple test. > But I think 2 times is quite much. > > Therefore, I upload the code online to see if any experts can find any problem? > > > Thanks. > > http://howachen.googlepages.com/nntp.py > http://howachen.googlepages.com/nntp.pl > > >>> time python nntp.py news.microsoft.com microsoft.public.access access.mbox > > 18 sec > >>> time perl nntp.pl > > 37 sec > > > Any comments? >