]> sipb.mit.edu Git - ikiwiki.git/blob - doc/todo/optimisations.mdwn
web commit by Kyle
[ikiwiki.git] / doc / todo / optimisations.mdwn
1 * Render each changed page only once. Currently pages are rendered up to 4
2   times in worst case (8 times if there's an rss feed).
3
4   The issue is that rendering a page is used to gather info like the links
5   on the page (and other stuff) that can effect rendering other pages. So it
6   needs a multi-pass system. But rendering the whole page in each pass is
7   rather obscene.
8   
9   It would be better to have the first pass be a data gathering pass. Such
10   a pass would still need to load and parse the page contents etc, but
11   wouldn't need to generate html or write anything to disk.
12
13   One problem with this idea is that it could turn into 2x the work in
14   cases where ikiwiki currently efficiently renders a page just once. And
15   caching between the passes to avoid that wouldn't do good things to the
16   memory footprint.
17
18   Might be best to just do a partial first pass, getting eg, the page links
19   up-to-date, and then multiple, but generally fewer, rendering passes.
20
21 * Don't render blog archive pages unless a page is added/removed. Just
22   changing a page doesn't affect the archives as they show only the title.
23
24 * Look at splitting up CGI.pm. But note that too much splitting can slow
25   perl down.