Stephan Richter convinced me to try the ZCML optimization task. Zope 3 parses and interprets hundreds of little ZCML configuration files on startup. The idea was that if we can cache pre-parsed configuration on disk, we could speed up Zope 3 startup by 30–50%.

I originally tried this approach back in 2004 but couldn't get it to work. Today, thanks to Stephan Richter, who took over the most boring and difficult parts (making view directives pickleable), we got to a point where Zope 3 works after loading the configuration pickle instead of parsing ZCMLs (and starts up in 2 seconds instead of 3).

The code is still at a prototype/proof-of-concept level, full of ugly hacks. The tests are also not very happy (68 failures, 115 errors out of 6955 tests). The patch describes the changes in greater detail.

We also had a nice dinner in a Japanese all-you-can-eat buffet called Minado.