X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/69a1ebce16debf8b0aeb61329ff26d235e248e7d..967137938c8f8bdee2149acef4ce138377db2041:/doc/tips/optimising_ikiwiki.mdwn diff --git a/doc/tips/optimising_ikiwiki.mdwn b/doc/tips/optimising_ikiwiki.mdwn index cf166998b..caed75ba6 100644 --- a/doc/tips/optimising_ikiwiki.mdwn +++ b/doc/tips/optimising_ikiwiki.mdwn @@ -38,6 +38,14 @@ If your version of ikiwiki is not [[!version]], try upgrading. New optimisations are frequently added to ikiwiki, some of them yielding *enormous* speed increases. +## run ikiwiki in verbose mode + +Try changing a page, and run ikiwiki with `-v` so it will tell you +everything it does to deal with that changed page. Take note of +which other pages are rebuilt, and which parts of the build take a long +time. This can help you zero in on individual pages that contain some of +the expensive things listed below. + ## expensive inlines Do you have an archive page for your blog that shows all posts, @@ -64,7 +72,7 @@ smaller. \[[!inline pages="blog/* and link(tag)" show=0 archive=yes quick=yes]] -Only downsides: This won't show titles set by the [[!ikiwiki/directive/meta]] +Only downsides: This won't show titles set by the [[ikiwiki/directive/meta]] directive. And there's no RSS feed for users to use -- but if this page is only for the archives or tag for your blog, users should be subscribing to the blog's main page's RSS feed instead. @@ -85,7 +93,7 @@ The resulting html file might get big and expensive to generate as you keep adding pages. First, consider removing the "show=title". Then the map will not show page -titles set by the [[!ikiwiki/directive/meta]] directive -- but will also +titles set by the [[ikiwiki/directive/meta]] directive -- but will also only need to be generated when pages are added or removed, not for every page change. @@ -168,7 +176,7 @@ Finally, let's think about how huge number of pages can affect ikiwiki. quickly, but still, lots more pages will make PageSpecs more expensive. * The backlinks calculation has to consider every link on every page - in the wiki. (In practice, most pages only like to at most a few dozen + in the wiki. (In practice, most pages only link to at most a few dozen other pages, so this is not a `O(N^2)`, but closer to `O(N)`.) * Ikiwiki also reads and writes an `index` file, which contains information