Among the things that bubbled up during my recent refactor of the way fileinfos are handled was a number of performance improvements that could be applied to the build process. I decided to take the time to add those as well in the current development fork.
When pages are built in the queue, the templates needed to build them were being created and destroyed at each iteration of the queue loop. To save some time, I allowed each template to be cached for the duration of the loop run (e.g., fifty iterations). On longer queue runs, the savings add up a good deal.
Another Zen of Python addition. The pipeline for building pages had way too many functions nested inside each other. I broke them apart and laid them side-by-side. This made the build process easier to understand, and also meant fewer redundant object lookups during the build.
I imagine I'll find any number of other improvements as I continue to refactor and refine things.