ikiwiki/doc
Joey Hess 2a7721febd Avoid %links accumulating duplicates. (For TOVA)
This is sorta an optimisation, and sorta a bug fix. In one
test case I have available, it can speed a page build up from 3
minutes to 3 seconds.

The root of the problem is that $links{$page} contains arrays of
links, rather than hashes of links. And when a link is found,
it is just pushed onto the array, without checking for dups.

Now, the array is emptied before scanning a page, so there
should not be a lot of opportunity for lots of duplicate links
to pile up in it. But, in some cases, they can, and if there
are hundreds of duplicate links in the array, then scanning it
for matching links, as match_link and some other code does,
becomes much more expensive than it needs to be.

Perhaps the real right fix would be to change the data structure
to a hash. But, the list of links is never accessed like that,
you always want to iterate through it.

I also looked at deduping the list in saveindex, but that does
a lot of unnecessary work, and doesn't completly solve the problem.

So, finally, I decided to add an add_link function that handles deduping,
and make ikiwiki-transition remove the old dup links.
2009-05-06 00:27:24 -04:00
..
banned_users
basewiki
bugs response 2009-05-05 14:24:55 -04:00
cgi
contact
css_market removed 2009-04-27 10:12:22 -04:00
examples 2009-03-02 18:39:02 -05:00
forum update 2009-04-04 18:39:55 -04:00
freesoftware response 2009-03-25 16:25:02 -04:00
ikiwiki s/choosen/chosen/ 2009-04-28 01:41:12 -04:00
ikiwiki-mass-rebuild
ikiwikiusers
index 2009-04-10 00:05:15 -04:00
install
logo
news add news item for ikiwiki 3.11 2009-05-04 16:35:59 -04:00
plugins Avoid %links accumulating duplicates. (For TOVA) 2009-05-06 00:27:24 -04:00
post-commit
rcs heh 2009-04-04 18:24:04 -04:00
roadmap
sandbox 2009-04-24 05:48:03 -04:00
security
setup response 2009-05-05 14:28:42 -04:00
smileys
soc
tags
templates
tips response 2009-05-04 14:34:05 -04:00
todo 2009-05-05 04:41:15 -04:00
translation
usage
users a clarifying comment about a tool which is referred to 2009-05-02 13:30:17 -04:00
w3mmode
wikiicons
GPL
TourBusStop.mdwn
backlinks.mdwn
banned_users.mdwn
basewiki.mdwn
blog.mdwn
bugs.mdwn
cgi.mdwn
commit-internals.mdwn
consultants.mdwn
contact.mdwn
convert.mdwn
css.mdwn
css_market.mdwn update zack.css from gitweb and repoint link to it 2009-03-26 14:11:51 -04:00
download.mdwn remove some old distro version stuff 2009-02-11 16:58:32 -05:00
examples.mdwn
favicon.ico
features.mdwn
forum.mdwn
freesoftware.mdwn
git.mdwn darcs branch retired 2009-04-04 18:42:24 -04:00
ikiwiki-makerepo.mdwn typo 2009-04-04 17:54:32 -04:00
ikiwiki-mass-rebuild.mdwn
ikiwiki-transition.mdwn Avoid %links accumulating duplicates. (For TOVA) 2009-05-06 00:27:24 -04:00
ikiwiki-update-wikilist.mdwn
ikiwiki.mdwn
ikiwikiusers.mdwn 2009-04-28 19:42:18 -04:00
index.mdwn Revert "blanking for the luls" 2009-02-14 21:42:58 -05:00
install.mdwn
local.css
logo.mdwn
news.mdwn
pagehistory.mdwn
patch.mdwn
plugins.mdwn
post-commit.mdwn
rcs.mdwn
recentchanges.mdwn
roadmap.mdwn
robots.txt
sandbox.mdwn 2009-04-16 16:55:49 -04:00
security.mdwn
setup.mdwn
shortcuts.mdwn
sitemap.mdwn
smileys.mdwn
soc.mdwn
style.css Add a microblog template that is useful for inlining microblogging posts. 2009-04-11 12:40:15 -04:00
tags.mdwn
templates.mdwn
tipjar.mdwn
tips.mdwn
todo.mdwn
translation.mdwn translation.mdwn: Typo fixes. Closes: #525753 2009-04-27 13:57:35 -04:00
usage.mdwn fix typo in --getctime description 2009-04-03 14:28:15 -04:00
users.mdwn
w3mmode.mdwn
whyikiwiki.mdwn
wikitemplates.mdwn Add a microblog template that is useful for inlining microblogging posts. 2009-04-11 12:40:15 -04:00
wishlist.mdwn