diff options
author | Simon McVittie <smcv@ http://smcv.pseudorandom.co.uk/> | 2009-06-18 15:54:53 +0100 |
---|---|---|
committer | Simon McVittie <smcv@ http://smcv.pseudorandom.co.uk/> | 2009-08-24 23:18:10 +0100 |
commit | fe4f176f725b069ac74561600bba982c2d9ad607 (patch) | |
tree | f450ae4642b4c28d82f23aeb488c63f92ec54b5f /ikiwiki-transition | |
parent | cc665380e3c9998ef04f1e42320cecd152ffd23c (diff) | |
download | ikiwiki-fe4f176f725b069ac74561600bba982c2d9ad607.tar ikiwiki-fe4f176f725b069ac74561600bba982c2d9ad607.tar.gz |
Optimize the dependencies list
On a large wiki you can spend a lot of time reading through large lists
of dependencies to see whether files need to be rebuilt (album, with its
one-page-per-photo arrangement, suffers particularly badly from this).
The dependency list is currently a single pagespec, but it's not used like
a normal pagespec - in practice, it's a list of pagespecs joined with the
"or" operator.
Accordingly, change it to be stored as a list of pagespecs. On a wiki
with many tagged photo albums, this reduces the time to refresh after
`touch tags/*.mdwn` from about 31 to 25 seconds.
Getting the benefit of this change on an existing wiki requires a rebuild.
Diffstat (limited to 'ikiwiki-transition')
-rwxr-xr-x | ikiwiki-transition | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/ikiwiki-transition b/ikiwiki-transition index 398b1a3c8..60cea3d54 100755 --- a/ikiwiki-transition +++ b/ikiwiki-transition @@ -299,7 +299,7 @@ sub oldloadindex { $pagemtime{$page}=$items{mtime}[0]; $oldlinks{$page}=[@{$items{link}}]; $links{$page}=[@{$items{link}}]; - $depends{$page}=$items{depends}[0] if exists $items{depends}; + $depends{$page}=[$items{depends}[0]] if exists $items{depends}; $destsources{$_}=$page foreach @{$items{dest}}; $renderedfiles{$page}=[@{$items{dest}}]; $pagecase{lc $page}=$page; |