]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - doc/tips/optimising_ikiwiki.mdwn
related ideas
[git.ikiwiki.info.git] / doc / tips / optimising_ikiwiki.mdwn
index 085ef0306760de98a0d87a466f6a470cc1472aca..d66ee9343296e61bbfff62a7128c76e95b8754a7 100644 (file)
@@ -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.
 
 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, 
 ## 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]]
 
        
        \[[!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.
 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
 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.
 
 only need to be generated when pages are added or removed, not for every
 page change.
 
@@ -130,7 +138,7 @@ all the pages on a traditional, highly WikiLinked wiki, is asking for things
 to be slow. But using it to map a few related pages is probably fine.
 
 This site's own [[plugins/linkmap]] rarely slows it down, because it
 to be slow. But using it to map a few related pages is probably fine.
 
 This site's own [[plugins/linkmap]] rarely slows it down, because it
-only shows the [[index]] page, and the small set of pages that link to it.
+only shows the index page, and the small set of pages that link to it.
 That is accomplished as follows:
 
        \[[!linkmap pages="index or (backlink(index)"]]
 That is accomplished as follows:
 
        \[[!linkmap pages="index or (backlink(index)"]]
@@ -148,7 +156,7 @@ ikiwiki.
 
 The best way to do it is:
 
 
 The best way to do it is:
 
-* Install [[cpan Devel::NYTProf]]
+* Install [[!cpan Devel::NYTProf]]
 * `PERL5OPT=-d:NYTProf`
 * `export PER5OPT`
 * Now run ikiwiki as usual, and it will generate a `nytprof.out` file.
 * `PERL5OPT=-d:NYTProf`
 * `export PER5OPT`
 * Now run ikiwiki as usual, and it will generate a `nytprof.out` file.
@@ -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
   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
   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