]> sipb.mit.edu Git - ikiwiki.git/commitdiff
one more patch: but expanding the memoization is actually a slowdown for the docwiki
authorhttp://smcv.pseudorandom.co.uk/ <smcv@web>
Sat, 20 Nov 2010 00:36:29 +0000 (00:36 +0000)
committerJoey Hess <joey@kitenet.net>
Sat, 20 Nov 2010 00:36:29 +0000 (00:36 +0000)
doc/todo/Improving_the_efficiency_of_match__95__glob.mdwn

index de3cf48d3aae963943dfeb3aaffb2edd6f472ef8..4fe14540fa3c543fb3240acdb63aa057e259bcfb 100644 (file)
@@ -43,12 +43,19 @@ Here's my patch - please consider it! -- [[KathrynAndersen]]
 >>>>>> `/^/i` regexp that can be used without further modifiction in most
 >>>>>> cases. --[[Joey]] 
 
->>>>>>> Done, see `smcv/ready/glob-cache`.
+>>>>>>> Done, see `smcv/ready/glob-cache` and `smcv/glob-cache-too-far`.
+>>>>>>>
 >>>>>>> Kathryn's patch is a significant improvement; my first patch on top of
->>>>>>> that is a trivial cleanup that speeds it up a little, and the other two
+>>>>>>> that is a trivial cleanup that speeds it up a little, and the next two
 >>>>>>> patches (using precompiled regexes) have surprisingly little effect
 >>>>>>> (they don't slow it down either though, so either omit them or merge
->>>>>>> them, whichever). Detailed benchmark results --[[smcv]]
+>>>>>>> them, whichever). Detailed benchmark results below.
+>>>>>>>
+>>>>>>> Moving the memoization to `glob2re` actually seems to slow things down
+>>>>>>> again - I suspect the docwiki has few enough mentions of `user()` etc.
+>>>>>>> that caching them is a waste of time, but perhaps it's not the most
+>>>>>>> representative.
+>>>>>>> --[[smcv]]
 
 --------------------------------------------------------------
 
@@ -120,9 +127,21 @@ master at time of branch:
      7.70    1.7814    79514   0.000022     IkiWiki::PageSpec::match_glob
      3.35    0.7756    59454   0.000013     <anon>:IkiWiki/Plugin/inline.pm:223
 
-"""]]
+`move memoization from match_glob to glob2re`:
+
+    time elapsed (wall):   28.7677
+    time running program:  23.9473  (83.24%)
+    time profiling (est.): 4.8205  (16.76%)
+    number of calls:       1360181
+    number of exceptions:  13
+    
+    %Time    Sec.     #calls   sec/call  F  name
+    13.98    3.3469     3408   0.000982     Text::Balanced::_match_tagged
+     8.85    2.1194    79514   0.000027     IkiWiki::PageSpec::match_glob
+     3.24    0.7750    59454   0.000013     <anon>:IkiWiki/Plugin/inline.pm:223
 
 --[[smcv]]
+"""]]
 
 --------------------------------------------------------------