Jens Vagelpohl wrote:

On 18 Dec 2005, at 06:46, Alan Milligan wrote:

I'm reconsidering the way we RPM package byte-code compiled python,  and
although I suspect optimised python is a bit of an anacronysm, I  thought
I'd check with the list ;)

If one was to start Zope with python -O, then it would look for (and
generate) .pyo files instead of .pyc's in all the Products right?

Would there be any performance gain by this change?  How much?

Is it worth me doing byte-compiles with -O and starting Zope's
interpreter in this mode?

There is no anachronism at all. Building Python by hand will also build .pyo files alonside .pyc files. There is a speed increase running Zope with .pyos, but if I remember correctly you have to hack one of the startup files to correctly pass all python flags given upon startup. I don't know anyone who has done specific testing to quantify the speed increase, though.

There is a drawback: Debugging becomes a lot harder and sometimes impossible because you get no or faulty line number information in tracebacks and when using pdb.

That isn't true.  Line numbers are included and valid.

All -O does is:

- cause __debug__ to be false

- cause assert statements to be noop.

ZODB, and especially ZEO, have lots of logging calls conditioned on
__debug__, and running with -O can have a measurable (a few percent, If
I remember correctly) impact on performance especially when lots of
database access is going on.  I think this effect is more pronounced
for ZEO storage servers.

Production Zope and ZEO servers should run with -O IMO.


Jim Fulton           mailto:[EMAIL PROTECTED]       Python Powered!
CTO                  (540) 361-1714  
Zope Corporation
Zope-Dev maillist  -
**  No cross posts or HTML encoding!  **
(Related lists - )

Reply via email to