]> granicus.if.org Git - postgresql/commit
doc: Speed up XSLT builds
authorPeter Eisentraut <peter_e@gmx.net>
Thu, 18 Aug 2016 16:00:00 +0000 (12:00 -0400)
committerPeter Eisentraut <peter_e@gmx.net>
Thu, 18 Aug 2016 16:00:00 +0000 (12:00 -0400)
commite8306745e3504c642f7abad411139d5630e29fac
treef7dfb180e6ef182526044f1fbc0b6fad1416761a
parent8019b5a89c3cefbaa69ab58c00281419f7e46601
doc: Speed up XSLT builds

The upstream XSLT stylesheets use some very general XPath expressions in
some places that end up being very slow.  We can optimize them with
knowledge about the DocBook document structure and our particular use
thereof.  For example, when counting preceding chapters to get a number
for the current chapter, we only need to count preceding sibling
nodes (more or less) instead of searching through the entire node tree
for chapter elements.

This change attacks the slowest pieces as identified by xsltproc
--profile.  This makes the HTML build roughly 10 times faster, resulting
in the new total build time being about the same as the old DSSSL-based
build.  Some of the non-HTML build targets (especially FO) will also
benefit a bit, but they have not been specifically analyzed.

With this, also remove the pg.fast parameter, which was previously a
hack to get the build to a manageable speed.

Alexander Lakhin <a.lakhin@postgrespro.ru>, with some additional
tweaking by me
doc/src/sgml/stylesheet-common.xsl
doc/src/sgml/stylesheet-speedup-common.xsl [new file with mode: 0644]
doc/src/sgml/stylesheet-speedup-xhtml.xsl [new file with mode: 0644]
doc/src/sgml/stylesheet.xsl