[Gsoc] Project List
Philipp von Weitershausen
philipp at weitershausen.de
Thu Mar 29 06:59:00 EDT 2007
On 29 Mar 2007, at 12:55 , Philipp von Weitershausen wrote:
>> Martijn, I did the measurements last year already (when I applied
>> for the
>> project), and I know that converting the XML strings via schemas
>> to Python
>> values is about 50% of the startup time. Pickles, on the other
>> hand, are
>> quickly read, so I think the overall gain would be about 50%. For
>> example, if
>> Zope takes 4 seconds to start now, it would take 2 seconds after the
>> improvements. I think that wildly! improves programming comfort. I
>> would have
>> never applied or suggested the project if I would have not known
>> the numbers.
>
> That's a great improvement. A similar improvement could probably be
> made if we specified configuration in Python, because strings would
> be loaded by the Python interpreter. We would get that optimization
> (and even the pickling to pyc files) for free.
>
>> As for switching to Python actions for configuration, I think this
>> is worthy
>> thinking about.
>
> It's spoken-out goal of several Zope 3 developers, incl. Jim and
> some of the Grok team.
>
> Having trained more than 100 people in Zope 3 now, I've also
> realized that the slug mechanism is one of the things that confuses
> people most. Setuptools' entry point mechanism (in combination with
> configuration actions in Python) would be a definite alternative.
> Jim has suggested this before, too. (Note that pretty much all
> other Python web frameworks these days use entry points, that
> eliminates our need for documenting yet another inclusion mechanism)
>
>> However, I think this particular problem has a wide scope and
>> takes a lot of work, more than what I would expect of a student
>> during a GSoC
>> project.
>
> I must disagree here. It all depends on the focus of the work. If
> we made configuration actions in Python a priority, optimizations
> of the ZCML stuff could follow easily afterwards (convert the XML
> to pickle once, on subsequent startups feed the pickle output to
> the actions-in-Python mechanism).
Rereading Paul's proposal on the GSoC site, he actually proposes what
I said above:
>>> Since the binary files will be representing python data
>>> structures, there must be a python interface to ZCML directives
>>> and their handlers. Having a python interface to ZCML would also
>>> give developers the choice of writing ZCML configuration in
>>> python, a feature which would be particularly useful to the Grok
>>> project. Once there is a python interface to ZCML, calls to ZCML
>>> directives can be easily stored in a binary format using Python's
>>> pickle library.
So no matter what you would expect from him or not, he seems wanting
to implement it already :)
More information about the Gsoc
mailing list