diff options
author | Martin Langhoff <martin@laptop.org> | 2010-11-24 20:55:52 (GMT) |
---|---|---|
committer | Martin Langhoff <martin@laptop.org> | 2010-11-25 21:04:53 (GMT) |
commit | 88e9df6c58827f3d812a956688afad29be4e28f8 (patch) | |
tree | 460965f54f869ef5ccd66203adb49cc5566c43b3 /server.py | |
parent | e5d1d0793bedc06cfee4b9c580d681ca318f3fb8 (diff) |
Use lrudecorator to memoize wp_load_article lookups
Reading profiling data on wp_load_article points to
wp.wp_load_article() being called many times, and being
slow.
This patch gives us radical speedups on cached stuff, and modest
cache results.
Andorra goes from 15.5s to 14.5s cold-cache. Once the cache is seeded
it returns in 0.7s.
Diffstat (limited to 'server.py')
-rwxr-xr-x | server.py | 9 |
1 files changed, 8 insertions, 1 deletions
@@ -37,6 +37,7 @@ import tempfile import re import wp import xml.dom.minidom +from pylru import lrudecorator # Uncomment to print out a large dump from the template expander. #os.environ['DEBUG_EXPANDER'] = '1' @@ -110,7 +111,7 @@ class WPWikiDB: article_text = "" break - article_text = unicode(wp.wp_load_article(title.encode('utf8')), 'utf8') + article_text = unicode(wp_load_article(title.encode('utf8')), 'utf8') # To see unmodified article_text, uncomment here. # print article_text @@ -763,6 +764,12 @@ def load_db(dbname): dbname + '.locate.prefixdb', dbname + '.blocks.db') +# Cache articles and specially templates +@lrudecorator(100) +def wp_load_article(title): + + return wp.wp_load_article(title) + def run_server(confvars): index = ArticleIndex('%s.index.txt' % confvars['path']) |