Hello everybody, The first beta version of Psyco is released, with Windows and Linux binaries, for Python 2.1 and 2.2. Any feedback welcome! http://sourceforge.net/projects/psyco/ Thanks, Armin.
Just run ab against a Zope 2.5.0 instance and tested
the performance against a stupid PythonScript.
Results:
without psyco: 116 requests/second
with psyco: 33 requests/second
Jup, Zope is about 3.5 times slower *with* psyco.
Any explanations for this worse behaviour ?
Andreas
----- Original Message -----
From: "Armin Rigo"
Hello everybody,
The first beta version of Psyco is released, with Windows and Linux binaries, for Python 2.1 and 2.2. Any feedback welcome!
http://sourceforge.net/projects/psyco/
Thanks,
Armin.
_______________________________________________ Zope-Coders mailing list Zope-Coders@zope.org http://lists.zope.org/mailman/listinfo/zope-coders
On Fri, 2002-03-01 at 18:56, Andreas Jung wrote:
Just run ab against a Zope 2.5.0 instance and tested the performance against a stupid PythonScript.
Results:
without psyco: 116 requests/second with psyco: 33 requests/second
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. -- Petru Paler, http://www.ppetru.net
If that's true, then the command-line speed test should show a speedup (rather than running ab against the server). Another useful test: the zodb load test. --Paul Petru Paler wrote:
On Fri, 2002-03-01 at 18:56, Andreas Jung wrote:
Just run ab against a Zope 2.5.0 instance and tested the performance against a stupid PythonScript.
Results:
without psyco: 116 requests/second with psyco: 33 requests/second
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.
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
...running the Zope testsuite with psyco fails with
a segmentation fault.
Andreas
----- Original Message -----
From: "Armin Rigo"
Hello everybody,
The first beta version of Psyco is released, with Windows and Linux binaries, for Python 2.1 and 2.2. Any feedback welcome!
http://sourceforge.net/projects/psyco/
Thanks,
Armin.
_______________________________________________ Zope-Coders mailing list Zope-Coders@zope.org http://lists.zope.org/mailman/listinfo/zope-coders
participants (4)
-
Andreas Jung
-
Armin Rigo
-
Paul Everitt
-
Petru Paler