Hello Petru, ----- Original Message ----- > > Jup, Zope is about 3.5 times slower *with* psyco. > > Any explanations for this worse behaviour ? > > Just a wild, wild guess: this could be related to Psyco not doing the > regular interval polling, so PyThreadState_Swap() doesn't get called as > often as it should, ZServer piles up requests, the worker threads get > starved, and so on. Morten's results give a more interesting answer. He went from a serious slowdown to a 2x speed-up by replacing psyco.jit() with psyco.bind() on a pair of classes. So the problem probably stands in the just-in-time rebinder, psyco.jit(). Not only does it add a constant profiling-like overhead (significantly more important in Python 2.1 than 2.2, by the way), but I believe that there are quite a few problems with its current approach. Would someone please make another check on Zope+Psyco without using psyco.jit() ? A few carefully selected psyco.bind() could give quite more positive speed-ups. I don't know exactly *how* to select what to bind, however. Maybe testing various combinations and relating them with data from profiling could give a hint at more general usage patterns that could be eventually formalized in a more involved implementation of psyco.jit(). Thanks, Armin
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4