GNOME Bugzilla – Bug 320087
Cache freqently-called slow templates with an XSLT extension
Last modified: 2006-07-01 17:18:37 UTC
In particular, the XSLT templates that create numbers for sections and formal block objects could be called dozens of times on each element. There's only so much that can be done to speed those templates up, so we should see what we can do inside of Yelp. It should be possible to register a yelp:cache extension element, and wrap the contents of those templates with it. This would call back to a function in Yelp which checks to see if that template has already been called on that element. If so, it returns a cached value. Otherwise, it runs the XSLT and stores the value for later calls.
Is this still worth doing now that Yelp is quick again, or can this bug be closed?
Yup. My timings still indicate that we can get a noticeable speed improvement on large documents by doing this. Anybody who's interested should ping me. It's pretty straight-forward.
Created attachment 68250 [details] [review] patch that implements this already committed to HEAD. see my post on gnome-doc-devel-list on June 29th, 2006 for more information. Speeds up Gnumeric manual from 55secs to 25seconds.