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 Migrate everything else via prefix_directives 2008-07-21 12:32:31 +01:00
tags Migrate escaped directives (\[[) in the rest of doc to have \[[! prefix 2008-07-21 12:47:07 +01:00
templates response 2008-09-17 13:45:57 -04:00
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 remove ikiwiki.setup 2008-07-26 22:55:39 -04:00
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 move inline docs to ikiwiki/directive/inline 2008-09-11 19:39:35 -04:00
backlinks.mdwn
banned_users.mdwn banned_users move to setup file, stage 1 2008-08-01 17:39:17 -04:00
basewiki.mdwn move inline docs to ikiwiki/directive/inline 2008-09-11 19:39:35 -04:00
blog.mdwn move inline docs to ikiwiki/directive/inline 2008-09-11 19:39:35 -04:00
bugs.mdwn remove test 2008-07-21 17:18:14 -04:00
cgi.mdwn
commit-internals.mdwn
consultants.mdwn
contact.mdwn typo 2009-01-23 20:08:52 -05:00
convert.mdwn
css.mdwn Migrate everything else via prefix_directives 2008-07-21 12:32:31 +01:00
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 Migrate everything else via prefix_directives 2008-07-21 12:32:31 +01:00
freesoftware.mdwn Migrate everything else via prefix_directives 2008-07-21 12:32:31 +01:00
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-update-wikilist: Add -r switch to remove. Default behavior is now always to add. 2008-07-27 00:02:04 -04:00
ikiwiki.mdwn reorder 2008-09-12 16:12:37 -04:00
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 Migrate everything else via prefix_directives 2008-07-21 12:32:31 +01:00
pagehistory.mdwn repolist: New plugin to support the rel=vcs-* microformat. 2009-01-07 16:07:46 -05:00
patch.mdwn Migrate everything else via prefix_directives 2008-07-21 12:32:31 +01:00
plugins.mdwn Sort plugins by title. 2008-08-06 23:09:08 -04:00
post-commit.mdwn
rcs.mdwn Migrate everything else via prefix_directives 2008-07-21 12:32:31 +01:00
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 Migrate everything else via prefix_directives 2008-07-21 12:32:31 +01:00
smileys.mdwn
soc.mdwn Migrate everything else via prefix_directives 2008-07-21 12:32:31 +01:00
style.css Add a microblog template that is useful for inlining microblogging posts. 2009-04-11 12:40:15 -04:00
tags.mdwn move inline docs to ikiwiki/directive/inline 2008-09-11 19:39:35 -04:00
templates.mdwn fix links 2008-09-14 17:01:05 -04:00
tipjar.mdwn
tips.mdwn Migrate everything else via prefix_directives 2008-07-21 12:32:31 +01:00
todo.mdwn Migrate everything else via prefix_directives 2008-07-21 12:32:31 +01:00
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 Migrate everything else via prefix_directives 2008-07-21 12:32:31 +01:00
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 Migrate everything else via prefix_directives 2008-07-21 12:32:31 +01:00