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 2009-01-20 21:04:25 -05:00
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 Replace blank OpenID placeholder logo with an unofficial OpenID logo developed by Anna Hess. The official logo does not seem destined to be free. 2008-12-28 16:19:47 -05:00
GPL
TourBusStop.mdwn
backlinks.mdwn
banned_users.mdwn
basewiki.mdwn
blog.mdwn
bugs.mdwn
cgi.mdwn
commit-internals.mdwn
consultants.mdwn
contact.mdwn typo 2009-01-23 20:08:52 -05:00
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 update 2008-10-08 18:02:03 -04:00
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 remove ubuntu instructions, which don't belong here 2008-12-07 13:45:50 -05:00
local.css
logo.mdwn
news.mdwn
pagehistory.mdwn repolist: New plugin to support the rel=vcs-* microformat. 2009-01-07 16:07:46 -05:00
patch.mdwn
plugins.mdwn
post-commit.mdwn
rcs.mdwn
recentchanges.mdwn
roadmap.mdwn formatting 2008-12-31 15:43:14 -05:00
robots.txt
sandbox.mdwn 2009-04-16 16:55:49 -04:00
security.mdwn Fix version. 2008-12-31 18:10:18 -05:00
setup.mdwn combine two pages 2009-01-12 20:01:03 -05:00
shortcuts.mdwn fix entry 2008-10-11 10:29:52 -04:00
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