cspeedups has landed

2 views
Skip to first unread message

Christopher Lenz

unread,
Jun 29, 2007, 4:02:33 AM6/29/07
to gen...@googlegroups.com
Hey all,

yesterday I merged the cspeedups branch into trunk, which adds a C
implementation of the genshi.core.Markup class. This improves
performance around 10-20% in the benchmarks (Genshi now outperforms
Django templates in the bigtable.py benchmark [1]).

Anyway, I'd appreciate feedback on current trunk. Bugs, performance,
etc. You should be able to easily use the C extension using a normal
"setup.py build/install" on most platforms. For Windows, you need
VS2003, but I will of course include the built DLL in the windows
installer packages in the future.

Oh, and if you don't want the C extension, setup.py has a --without-
speedups option:

setup.py --without-speedups build

Cheers,
Chris

[1] http://genshi.edgewall.org/wiki/
GenshiPerformance#bigtablebenchmark
--
Christopher Lenz
cmlenz at gmx.de
http://www.cmlenz.net/

Christian Boos

unread,
Jun 29, 2007, 5:37:01 AM6/29/07
to gen...@googlegroups.com
Christopher Lenz wrote:
> Hey all,
>
> yesterday I merged the cspeedups branch into trunk, which adds a C
> implementation of the genshi.core.Markup class. This improves
> performance around 10-20% in the benchmarks (Genshi now outperforms
> Django templates in the bigtable.py benchmark [1]).
>

Great. It seems like it's also the amount of speedup I get when r656 is
used by Trac.

> Anyway, I'd appreciate feedback on current trunk. Bugs, performance,
> etc. You should be able to easily use the C extension using a normal
> "setup.py build/install" on most platforms. For Windows, you need
> VS2003, but I will of course include the built DLL in the windows
> installer packages in the future.
>

Seems to work without a hitch on Windows and SLES9 64-bits. Thanks!

-- Christian

Matt Good

unread,
Jul 7, 2007, 11:57:51 PM7/7/07
to Genshi
On Jun 29, 1:02 am, Christopher Lenz <cml...@gmx.de> wrote:
> yesterday I merged the cspeedups branch into trunk, which adds a C
> implementation of the genshi.core.Markup class. This improves
> performance around 10-20% in the benchmarks (Genshi now outperforms
> Django templates in the bigtable.py benchmark [1]).

Nice! Based on the profiler output from the bigtable benchmark the
serialization methods are where most of the time is spent. I'm
working on porting the XML serializer to C and will follow up with my
findings.

-- Matt

Reply all
Reply to author
Forward
0 new messages