Here are profiles for CGI, using different moin versions.
All profiles use one request for typical page: WhyWikiWorks from moin-1.3.1, using Python 2.4 on Mac OS X 10.3.
Release 1.2.4
8957 function calls (8840 primitive calls) in 0.360 CPU seconds Ordered by: cumulative time, internal time, call count List reduced from 433 to 40 due to restriction <40> ncalls tottime percall cumtime percall filename:lineno(function) 1 0.000 0.000 0.143 0.143 request.py:498(__init__) 1 0.021 0.021 0.143 0.143 request.py:57(__init__) 1 0.020 0.020 0.112 0.112 request.py:323(run) 1 0.034 0.034 0.105 0.105 request.py:8(?) 1 0.013 0.013 0.084 0.084 Page.py:385(send_page) 1 0.016 0.016 0.068 0.068 wikiutil.py:7(?) 2 0.002 0.001 0.056 0.028 user.py:119(__init__) 2 0.024 0.012 0.054 0.027 security.py:29(__init__) 11 0.000 0.000 0.052 0.005 wikiutil.py:495(importPlugin) 24/22 0.039 0.002 0.052 0.002 pysupport.py:37(importName) 1 0.011 0.011 0.030 0.030 user.py:7(?) 1 0.009 0.009 0.030 0.030 Page.py:7(?) 1 0.006 0.006 0.027 0.027 urllib.py:23(?) 1 0.015 0.015 0.026 0.026 wikiutil.py:846(send_title) 1 0.008 0.008 0.017 0.017 request.py:220(initdicts) 1 0.013 0.013 0.015 0.015 eventlog.py:5(?) 1 0.012 0.012 0.015 0.015 socket.py:43(?) 140 0.000 0.000 0.012 0.000 sre.py:213(_compile) 16 0.000 0.000 0.012 0.001 sre_compile.py:490(compile) 24 0.000 0.000 0.012 0.001 sre.py:178(compile) 1 0.008 0.008 0.012 0.012 Cookie.py:211(?) 1 0.010 0.010 0.012 0.012 wiki.py:7(?) 1 0.001 0.001 0.012 0.012 difflib.py:29(?) 1 0.008 0.008 0.010 0.010 heapq.py:31(?) 1 0.000 0.000 0.009 0.009 wikidicts.py:233(scandicts) 17/16 0.000 0.000 0.009 0.001 sre_parse.py:655(parse) 33/17 0.000 0.000 0.008 0.000 sre_parse.py:301(_parse_sub) 1 0.000 0.000 0.008 0.008 pickle.py:1389(load) 40/17 0.003 0.000 0.008 0.000 sre_parse.py:374(_parse) 1 0.004 0.004 0.008 0.008 pickle.py:859(load) 1 0.002 0.002 0.008 0.008 re.py:1(?) 1 0.002 0.002 0.007 0.007 request.py:511(open_logs) 1 0.006 0.006 0.007 0.007 pickle.py:25(?) 1 0.004 0.004 0.006 0.006 sre.py:94(?) 1 0.002 0.002 0.006 0.006 cgi.py:16(?) 1 0.003 0.003 0.006 0.006 string.py:20(?) 1 0.000 0.000 0.005 0.005 Page.py:657(send_page_content) 3 0.000 0.000 0.004 0.001 security.py:89(getACL) 2 0.000 0.000 0.004 0.002 security.py:45(edit) 3 0.004 0.001 0.004 0.001 Page.py:839(getACL)
Release 1.3.0
33109 function calls (32621 primitive calls) in 0.433 CPU seconds Ordered by: cumulative time, internal time, call count List reduced from 515 to 40 due to restriction <40> ncalls tottime percall cumtime percall filename:lineno(function) 1 0.000 0.000 0.213 0.213 request.py:654(run) 1 0.014 0.014 0.205 0.205 Page.py:650(send_page) 1 0.007 0.007 0.138 0.138 request.py:8(?) 1 0.014 0.014 0.132 0.132 wikiutil.py:902(send_title) 26 0.050 0.002 0.096 0.004 pysupport.py:37(importName) 12 0.000 0.000 0.096 0.008 wikiutil.py:508(importPlugin) 1 0.000 0.000 0.083 0.083 request.py:1034(__init__) 1 0.008 0.008 0.077 0.077 wikiutil.py:7(?) 1 0.000 0.000 0.074 0.074 modern.py:38(header) 2 0.000 0.000 0.072 0.036 __init__.py:910(editbar) 2 0.000 0.000 0.071 0.035 Page.py:958(canUseCache) 1 0.028 0.028 0.071 0.071 request.py:63(__init__) 157 0.000 0.000 0.051 0.000 sre.py:213(_compile) 21 0.000 0.000 0.051 0.002 sre_compile.py:490(compile) 38 0.000 0.000 0.049 0.001 sre.py:178(compile) 1 0.011 0.011 0.044 0.044 wiki.py:7(?) 1 0.000 0.000 0.044 0.044 Page.py:982(send_page_content) 7 0.000 0.000 0.034 0.005 security.py:52(<lambda>) 1 0.001 0.001 0.034 0.034 WhyWikiWorks:2(?) 1 0.032 0.032 0.033 0.033 wikimacro.py:13(?) 1 0.012 0.012 0.031 0.031 user.py:7(?) 1 0.007 0.007 0.028 0.028 urllib.py:23(?) 22/21 0.000 0.000 0.027 0.001 sre_parse.py:655(parse) 41/22 0.001 0.000 0.027 0.001 sre_parse.py:301(_parse_sub) 7 0.000 0.000 0.026 0.004 wikiacl.py:185(may) 7 0.000 0.000 0.026 0.004 request.py:133(__getattr__) 1 0.006 0.006 0.026 0.026 request.py:540(initdicts) 66 0.001 0.000 0.026 0.000 Page.py:550(link_to) 60 0.001 0.000 0.026 0.000 text_html.py:212(pagelink) 78/50 0.009 0.000 0.026 0.001 sre_parse.py:374(_parse) 267/98 0.016 0.000 0.023 0.000 Page.py:77(get_rev) 21 0.000 0.000 0.023 0.001 sre_compile.py:475(_code) 1 0.003 0.003 0.022 0.022 config.py:3(?) 77 0.002 0.000 0.022 0.000 Page.py:320(exists) 2 0.000 0.000 0.020 0.010 pickle.py:1392(loads) 2 0.009 0.004 0.020 0.010 pickle.py:859(load) 31 0.000 0.000 0.019 0.001 sre_compile.py:173(_compile_charset) 196/99 0.004 0.000 0.019 0.000 Page.py:108(getPagePath) 1 0.005 0.005 0.019 0.019 Page.py:7(?) 31 0.005 0.000 0.019 0.001 sre_compile.py:202(_optimize_charset)
Release 1.3.1
16628 function calls (16142 primitive calls) in 0.424 CPU seconds Ordered by: cumulative time, internal time, call count List reduced from 477 to 40 due to restriction <40> ncalls tottime percall cumtime percall filename:lineno(function) 1 0.000 0.000 0.184 0.184 request.py:654(run) 1 0.014 0.014 0.175 0.175 Page.py:650(send_page) 1 0.008 0.008 0.127 0.127 request.py:8(?) 1 0.014 0.014 0.115 0.115 wikiutil.py:909(send_title) 1 0.000 0.000 0.113 0.113 request.py:1034(__init__) 26 0.048 0.002 0.101 0.004 pysupport.py:37(importName) 12 0.000 0.000 0.101 0.008 wikiutil.py:515(importPlugin) 1 0.034 0.034 0.100 0.100 request.py:63(__init__) 1 0.008 0.008 0.076 0.076 wikiutil.py:7(?) 1 0.000 0.000 0.075 0.075 modern.py:38(header) 2 0.000 0.000 0.074 0.037 __init__.py:910(editbar) 2 0.000 0.000 0.071 0.036 Page.py:958(canUseCache) 41 0.000 0.000 0.052 0.001 sre.py:213(_compile) 20 0.000 0.000 0.052 0.003 sre_compile.py:490(compile) 38 0.000 0.000 0.050 0.001 sre.py:178(compile) 1 0.011 0.011 0.046 0.046 wiki.py:7(?) 1 0.034 0.034 0.035 0.035 wikimacro.py:13(?) 1 0.000 0.000 0.030 0.030 Page.py:982(send_page_content) 1 0.009 0.009 0.029 0.029 Page.py:7(?) 1 0.001 0.001 0.028 0.028 WhyWikiWorks:2(?) 21/20 0.000 0.000 0.028 0.001 sre_parse.py:655(parse) 40/21 0.001 0.000 0.028 0.001 sre_parse.py:301(_parse_sub) 267/98 0.021 0.000 0.028 0.000 Page.py:77(get_rev) 77/49 0.009 0.000 0.027 0.001 sre_parse.py:374(_parse) 1 0.006 0.006 0.027 0.027 urllib.py:23(?) 77 0.001 0.000 0.025 0.000 Page.py:320(exists) 1 0.000 0.000 0.024 0.024 request.py:259(loadTheme) 20 0.000 0.000 0.023 0.001 sre_compile.py:475(_code) 7 0.000 0.000 0.023 0.003 security.py:52(<lambda>) 1 0.003 0.003 0.022 0.022 config.py:3(?) 66 0.001 0.000 0.022 0.000 Page.py:550(link_to) 60 0.001 0.000 0.022 0.000 text_html.py:212(pagelink) 1 0.009 0.009 0.021 0.021 user.py:7(?) 28 0.000 0.000 0.019 0.001 sre_compile.py:173(_compile_charset) 28 0.005 0.000 0.019 0.001 sre_compile.py:202(_optimize_charset) 196/99 0.004 0.000 0.019 0.000 Page.py:108(getPagePath) 106/20 0.002 0.000 0.016 0.001 sre_compile.py:27(_compile) 1 0.013 0.013 0.015 0.015 eventlog.py:5(?) 1 0.012 0.012 0.015 0.015 socket.py:43(?) 4 0.012 0.003 0.014 0.003 sre_compile.py:296(_optimize_unicode)
Patch 515
24511 function calls (24160 primitive calls) in 0.427 CPU seconds Ordered by: cumulative time, internal time, call count List reduced from 502 to 40 due to restriction <40> ncalls tottime percall cumtime percall filename:lineno(function) 1 0.000 0.000 0.196 0.196 request.py:670(run) 1 0.014 0.014 0.184 0.184 Page.py:767(send_page) 1 0.000 0.000 0.133 0.133 request.py:1070(__init__) 1 0.038 0.038 0.114 0.114 request.py:64(__init__) 1 0.008 0.008 0.099 0.099 request.py:8(?) 17 0.046 0.003 0.075 0.004 pysupport.py:40(importName) 11 0.000 0.000 0.075 0.007 wikiutil.py:538(importPlugin) 105 0.000 0.000 0.071 0.001 sre.py:213(_compile) 21 0.000 0.000 0.070 0.003 sre_compile.py:490(compile) 102 0.000 0.000 0.069 0.001 sre.py:178(compile) 1 0.014 0.014 0.062 0.062 wikiutil.py:977(send_title) 1 0.012 0.012 0.048 0.048 Page.py:7(?) 1 0.004 0.004 0.043 0.043 wikiutil.py:7(?) 22/21 0.000 0.000 0.039 0.002 sre_parse.py:655(parse) 45/22 0.001 0.000 0.039 0.002 sre_parse.py:301(_parse_sub) 1 0.000 0.000 0.038 0.038 modern.py:18(header) 88/52 0.011 0.000 0.038 0.001 sre_parse.py:374(_parse) 2 0.000 0.000 0.034 0.017 __init__.py:921(editbar) 21 0.000 0.000 0.031 0.001 sre_compile.py:475(_code) 1 0.011 0.011 0.028 0.028 wiki.py:7(?) 29 0.000 0.000 0.026 0.001 sre_compile.py:173(_compile_charset) 29 0.007 0.000 0.026 0.001 sre_compile.py:202(_optimize_charset) 1 0.007 0.007 0.024 0.024 user.py:7(?) 120/21 0.002 0.000 0.024 0.001 sre_compile.py:27(_compile) 1 0.000 0.000 0.024 0.024 Page.py:1099(send_page_content) 1 0.003 0.003 0.022 0.022 config.py:3(?) 1 0.001 0.001 0.022 0.022 WhyWikiWorks:2(?) 74 0.004 0.000 0.022 0.000 Page.py:278(split_title) 1 0.004 0.004 0.022 0.022 urllib.py:23(?) 1 0.000 0.000 0.019 0.019 request.py:188(_setup_vars_from_std_env) 2 0.012 0.006 0.019 0.010 request.py:147(_load_multi_cfg) 73 0.001 0.000 0.019 0.000 Page.py:667(link_to) 1 0.000 0.000 0.019 0.019 request.py:266(loadTheme) 1 0.000 0.000 0.019 0.019 __init__.py:804(actionsMenu) 6 0.016 0.003 0.019 0.003 sre_compile.py:296(_optimize_unicode) 1 0.000 0.000 0.019 0.019 request.py:360(getAvailableActions) 1 0.018 0.018 0.018 0.018 request.py:330(getKnownActions) 60 0.001 0.000 0.017 0.000 text_html.py:212(pagelink) 1 0.014 0.014 0.017 0.017 socket.py:43(?) 1 0.016 0.016 0.017 0.017 wikimacro.py:13(?)
Patch-538+ page state caching
23726 function calls (23468 primitive calls) in 0.405 CPU seconds Ordered by: cumulative time, internal time, call count List reduced from 502 to 40 due to restriction <40> ncalls tottime percall cumtime percall filename:lineno(function) 1 0.000 0.000 0.184 0.184 request.py:674(run) 1 0.015 0.015 0.172 0.172 Page.py:944(send_page) 1 0.000 0.000 0.123 0.123 request.py:1074(__init__) 1 0.039 0.039 0.103 0.103 request.py:64(__init__) 1 0.008 0.008 0.098 0.098 request.py:8(?) 17 0.045 0.003 0.077 0.005 pysupport.py:40(importName) 11 0.000 0.000 0.076 0.007 wikiutil.py:539(importPlugin) 105 0.000 0.000 0.071 0.001 sre.py:213(_compile) 21 0.000 0.000 0.071 0.003 sre_compile.py:490(compile) 104 0.000 0.000 0.070 0.001 sre.py:178(compile) 1 0.013 0.013 0.057 0.057 wikiutil.py:978(send_title) 1 0.004 0.004 0.043 0.043 wikiutil.py:7(?) 22/21 0.000 0.000 0.039 0.002 sre_parse.py:655(parse) 45/22 0.001 0.000 0.038 0.002 sre_parse.py:301(_parse_sub) 88/52 0.012 0.000 0.038 0.001 sre_parse.py:374(_parse) 1 0.010 0.010 0.037 0.037 Page.py:7(?) 1 0.000 0.000 0.036 0.036 modern.py:18(header) 2 0.000 0.000 0.033 0.016 __init__.py:925(editbar) 21 0.000 0.000 0.032 0.002 sre_compile.py:475(_code) 1 0.012 0.012 0.030 0.030 wiki.py:7(?) 29 0.000 0.000 0.027 0.001 sre_compile.py:173(_compile_charset) 29 0.006 0.000 0.027 0.001 sre_compile.py:202(_optimize_charset) 120/21 0.002 0.000 0.025 0.001 sre_compile.py:27(_compile) 1 0.008 0.008 0.025 0.025 user.py:7(?) 74 0.004 0.000 0.022 0.000 Page.py:292(split_title) 1 0.003 0.003 0.022 0.022 config.py:3(?) 6 0.017 0.003 0.020 0.003 sre_compile.py:296(_optimize_unicode) 1 0.000 0.000 0.020 0.020 request.py:194(_setup_vars_from_std_env) 2 0.012 0.006 0.020 0.010 request.py:153(_load_multi_cfg) 1 0.000 0.000 0.019 0.019 request.py:272(loadTheme) 1 0.000 0.000 0.018 0.018 __init__.py:808(actionsMenu) 1 0.018 0.018 0.018 0.018 wikimacro.py:13(?) 1 0.000 0.000 0.018 0.018 request.py:366(getAvailableActions) 1 0.018 0.018 0.018 0.018 request.py:336(getKnownActions) 4788 0.012 0.000 0.016 0.000 sre_parse.py:201(get) 3 0.000 0.000 0.014 0.005 Page.py:580(userMay) 2 0.000 0.000 0.014 0.007 __init__.py:761(shouldShowEditbar) 1 0.000 0.000 0.014 0.014 Page.py:1276(send_page_content) 1 0.003 0.003 0.013 0.013 urllib.py:23(?) 1 0.002 0.002 0.013 0.013 WhyWikiWorks:2(?)