From: Joey Hess Date: Wed, 23 Jan 2013 23:40:35 +0000 (+1100) Subject: trail: Avoid massive slowdown caused by pagetemplate hook when displaying dynamic... X-Git-Url: https://sipb.mit.edu/gitweb.cgi/ikiwiki.git/commitdiff_plain/e5d82ef8680dce98b3afab43605d7b278c98c789?hp=-c;ds=sidebyside trail: Avoid massive slowdown caused by pagetemplate hook when displaying dynamic cgi pages, which cannot use trail anyway. This seemed to be due to the pagetemplate hook calling prerender. I've observed this making it take *minutes* for the signin page to be displayed. ltracing ikiwiki showed it was matching pagespecs a lot. It may be that this is still a speed pain point when rendering pages, not just for CGI. So more work may be needed here. --- e5d82ef8680dce98b3afab43605d7b278c98c789 diff --git a/IkiWiki/Plugin/trail.pm b/IkiWiki/Plugin/trail.pm index cb94855fd..d5fb2b5d6 100644 --- a/IkiWiki/Plugin/trail.pm +++ b/IkiWiki/Plugin/trail.pm @@ -411,6 +411,8 @@ sub pagetemplate (@) { my $page = $params{page}; my $template = $params{template}; + return unless length $page; + if ($template->query(name => 'trails') && ! $recursive) { prerender(); diff --git a/debian/changelog b/debian/changelog index cf6d90a8a..d1d132e1e 100644 --- a/debian/changelog +++ b/debian/changelog @@ -10,6 +10,8 @@ ikiwiki (3.20121213) UNRELEASED; urgency=low are disabled. (smcv) * poll: Add expandable option to allow users to easily add new choices to a poll. + * trail: Avoid massive slowdown caused by pagetemplate hook when displaying + dynamic cgi pages, which cannot use trail anyway. -- Joey Hess Sat, 22 Dec 2012 16:15:24 -0400