Must go faster, must go faster

By Serdar Yegulalp | 2016/07/13 08:00

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.

Template caching

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.

Flat is better than nested

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.

Tags: performance publishing templates

comments powered by Disqus