Re: DecoratorTools and python -OO
"P.J. Eby" <pje-Wh6+Hckhi6HFNGf7iClzIwC/[email protected]> Fri, 30 Apr 2010 18:59:45 -0400
| Newsgroups | gmane.comp.python.peak |
|---|---|
| Message-ID | <[email protected]> |
At 04:35 PM 4/30/2010 -0600, Jim Meier wrote: >We're trying to cut down the memory usage of our system, and it looks >like one area that might help is to use python's -OO flag to strip >docstrings from the bytecode. This works reasonable well as far as it >goes, but runs into an issue where DecoratorTools is using a function's >__doc__ attribute to store some code templates. Under -OO, __doc__ is >set to None, which causes a traceback when apply_template tried to >access the nonexistent replace method on it. Simply using an alternate >attribute resolves the problem. > >Attached is a patch that uses the attribute "__template__". Unfortunately, this patch won't work - it's not just DecoratorTools that would have to change, it's every library that *uses* DecoratorTools. See: http://www.eby-sarna.com/pipermail/peak/2009-December/003319.html for more info. (As a workaround, have you tried compiling the bytecode for affected modules with -O, and then running the interpreter with -OO? A bit hacky, but if you're that desperate for memory... what sort of system are you building, anyway, where docstrings are a significant part of your memory footprint?)