After implementing a dead, simple cache system, speed tests yielded an increase of more than 40 percent!
Basically, I focused on the slowest part of the build system, the entry plugins. More specifically those that modify the body of an entry, e.g. auto_break.sh, moods.sh. So, I started off by creating a cache directory and then modifying the read_entry function to compare files in both the cache and data directories. I was particularly interested in isolating the variable, NB_EntryBody. To do this in a flexible manner, I created a new plugins directory, entry/body and moved all entry plugins that modified NB_EntryBody to there. The beauty of this system, is that it finally solves some of the redundancy that's been bothering me for so long. With the new cache system in place, the entries content only gets processed once, every other time it's just read in from the cached version. Because of this, even the first test run was considerably faster than those without the cache and the second run was of course even faster. I think I'll keep her!
If you really, really want to comment, please mail email@example.com