[Doc-SIG] Building Python Document 30% faster.

Georg Brandl g.brandl at gmx.net
Thu Apr 9 22:13:34 CEST 2009


Naoki INADA schrieb:

>>> 2. Avoid building OptionParser many times.
>>> Sphinx uses docutils.core.publish_parts() without `settings` argument
>>> many times.
>>> This causes building docutils.frontend.OptionParser many times and consumes
>>> 29 seconds.
>>>
>>> 3. Avoid building NestedStateMachine many times.
>>> NestedStateMachine is built and destroyed many times.
>>> Recycling that SM make significant performance gain.
>>
>> I assume that both of this is in the second commit I see on bitbucket?  Both
>> look like a worthy optimization.
> 
> Former is in bitbucket.
> http://bitbucket.org/methane/sphinx-speedup/changeset/72fa0ceefcae/

Thanks, merged!  When porterstemmer is mature I'd also like to include it in
the Sphinx distribution as an optional extension.

> And later is not in bitbucket because NestedStateMachine is not in Sphinx
> but docutils.

OK, let's see. I'd first try to get the patch into docutils, after passing the
tests.  However, since most people will be using docutils 0.4 or 0.5 it might
also make sense to make a monkey-patch version for sphinx, like the traverse one.

Georg




More information about the Doc-SIG mailing list