Planning: performance

Daizu, being at an early stage of development, isn't as fast and lean as it should be. Here are the main problems I've identified.

Loading revisions

Loading information about new revisions, at least if there are lots of them or they touch many files, is dog slow. It also seems to eat all available memory. Look for the problem in Daizu::Revision. and its use of the Subversion get_log method.

I'm not exactly sure what's happening here, but it's presumably a memory leak, either in my code (most likely), in the Subversion Perl API (I could believe it), or in Subversion itself (probably not).

I should also do some testing to make sure that checking out and updating working copies is reasonably efficient, but that's really a separate issue.

Caching templates

Several issues here. Firstly, I should at least figure out how to get Daizu::TTProvider cache the locations to load templates from (because there are a whole series of queries needed to figure out whether the repository has a custom version of a template in a _template directory). If it could also cache the content in memory that would be useful.

It would also be nice if templates could be compiled, but I would have to be careful with that because there can be different versions of the same template, with the same name, in different places.