f937c1fb80
Markdown is slow. Especially if it has to process an enormous page. The most common enormous page is currently the recentchanges page, which gets processed a lot, and contains very little actual markdown. Most of it is a big <div>, which markdown skips ... slowly. This is a rather sick optimisation to work around markdown's speed issues. Now inline inserts a small, dummy div, allows markdown to quickly render the actual page content, then replaces the dummy with the actual inlined pages later. Results: Rendering just a recentchanges page, with diffs included, dropped from 4.5 seconds to 2.7 seconds on my laptop. Building the entire wiki dropped from 46.6 seconds to 39.5 seconds. (It would be better if inline were a *post*-processor directive.) |
||
---|---|---|
IkiWiki | ||
debian | ||
doc | ||
plugins | ||
po | ||
t | ||
templates | ||
underlays | ||
.gitignore | ||
.perlcriticrc | ||
CHANGELOG | ||
IkiWiki.pm | ||
Makefile.PL | ||
NEWS | ||
README | ||
docwiki.setup | ||
ikiwiki-makerepo | ||
ikiwiki-mass-rebuild | ||
ikiwiki-transition | ||
ikiwiki-update-wikilist | ||
ikiwiki-w3m.cgi | ||
ikiwiki.in | ||
mdwn2man | ||
pm_filter | ||
wikilist |
README
Use ./Makefile.PL to generate a Makefile, "make" will build the documentation wiki and a man page, and "make install" will install ikiwiki. A few special variables you can set while using the Makefile: PROFILE=1 turns on profiling for the build of the doc wiki. Uses Devel::Profile NOTAINT=0 turns on the taint flag in the ikiwiki program. (Not recommended unless your perl is less buggy than mine -- see http://bugs.debian.org/411786) All other documentation is in the ikiwiki documentation wiki, which is also available online at <http://ikiwiki.info/>