FrontPage is the most visited page in the wiki (see PageHits)
This test the default page that comes with moin, real front pages might be bigger than this page.
All profiles use (the first request is not profiled)
ab -n 101 -c 1 http://localhost:8000/FrontPage
Running standalone and with Python 2.4 on OS X. Since profiling code4 changed, using standalone.py from current code in 1.3.0 and 1.3.1.
Release 1.3.0
Requests per second: 8.01 [#/sec] (mean) 1182172 function calls (1165772 primitive calls) in 3.551 CPU seconds Ordered by: cumulative time, internal time, call count List reduced from 291 to 40 due to restriction <40> ncalls tottime percall cumtime percall filename:lineno(function) 100 0.009 0.000 3.443 0.034 request.py:654(run) 100 0.037 0.000 3.340 0.033 Page.py:650(send_page) 100 0.025 0.000 2.145 0.021 wikiutil.py:902(send_title) 800 0.011 0.000 1.544 0.002 security.py:52(<lambda>) 800 0.003 0.000 1.463 0.002 wikiacl.py:185(may) 1100 0.007 0.000 1.459 0.001 request.py:133(__getattr__) 100 0.004 0.000 1.451 0.015 request.py:540(initdicts) 100 0.006 0.000 1.447 0.014 wikidicts.py:289(scandicts) 100 0.029 0.000 1.430 0.014 pickle.py:1392(loads) 100 0.515 0.005 1.399 0.014 pickle.py:859(load) 15900/6600 0.488 0.000 0.858 0.000 Page.py:77(get_rev) 100 0.014 0.000 0.856 0.009 Page.py:982(send_page_content) 5300 0.037 0.000 0.819 0.000 Page.py:320(exists) 100 0.029 0.000 0.743 0.007 FrontPage:2(?) 14400/7300 0.244 0.000 0.739 0.000 Page.py:108(getPagePath) 2800 0.044 0.000 0.683 0.000 Page.py:550(link_to) 2000 0.033 0.000 0.610 0.000 text_html.py:212(pagelink) 8000 0.300 0.000 0.570 0.000 pickle.py:1221(load_setitems) 100 0.005 0.000 0.368 0.004 modern.py:38(header) 12100 0.274 0.000 0.274 0.000 pickle.py:884(marker) 1000 0.237 0.000 0.272 0.000 pysupport.py:37(importName) 1300 0.031 0.000 0.229 0.000 wikiutil.py:432(getSysPage) 400 0.009 0.000 0.226 0.001 wikiutil.py:508(importPlugin) 200 0.007 0.000 0.181 0.001 __init__.py:910(editbar) 200 0.014 0.000 0.169 0.001 Page.py:260(lastEditInfo) 100 0.004 0.000 0.138 0.001 __init__.py:282(navibar) 100 0.001 0.000 0.135 0.001 wikiutil.py:1116(send_footer) 100 0.003 0.000 0.132 0.001 modern.py:70(footer) 400 0.005 0.000 0.119 0.000 __init__.py:205(splitNavilink) 100 0.003 0.000 0.110 0.001 __init__.py:510(pageinfo) 100 0.010 0.000 0.108 0.001 request.py:1370(__init__) 117000 0.107 0.000 0.107 0.000 pickle.py:1193(load_long_binput) 100 0.005 0.000 0.095 0.001 request.py:63(__init__) 3400 0.063 0.000 0.091 0.000 wikiutil.py:765(link_tag) 62400 0.087 0.000 0.087 0.000 posixpath.py:56(join) 1200 0.004 0.000 0.086 0.000 Page.py:187(_text_filename) 200 0.003 0.000 0.086 0.000 editlog.py:57(getEditor) 18000 0.083 0.000 0.083 0.000 posixpath.py:168(exists) 350700 0.079 0.000 0.079 0.000 pickle.py:943(load_binint1) 100 0.001 0.000 0.074 0.001 request.py:1477(finish)
Rlease 1.3.1
Requests per second: 14.24 [#/sec] (mean) 262452 function calls (246052 primitive calls) in 2.160 CPU seconds Ordered by: cumulative time, internal time, call count List reduced from 265 to 40 due to restriction <40> ncalls tottime percall cumtime percall filename:lineno(function) 100 0.009 0.000 2.052 0.021 request.py:654(run) 100 0.038 0.000 1.948 0.019 Page.py:650(send_page) 15900/6600 0.493 0.000 0.881 0.000 Page.py:77(get_rev) 100 0.014 0.000 0.857 0.009 Page.py:982(send_page_content) 5300 0.035 0.000 0.839 0.000 Page.py:320(exists) 14400/7300 0.258 0.000 0.762 0.000 Page.py:108(getPagePath) 100 0.025 0.000 0.744 0.007 wikiutil.py:909(send_title) 100 0.028 0.000 0.743 0.007 FrontPage:2(?) 2800 0.044 0.000 0.692 0.000 Page.py:550(link_to) 2000 0.030 0.000 0.610 0.000 text_html.py:212(pagelink) 100 0.005 0.000 0.377 0.004 modern.py:38(header) 1000 0.238 0.000 0.273 0.000 pysupport.py:37(importName) 1300 0.031 0.000 0.237 0.000 wikiutil.py:432(getSysPage) 400 0.009 0.000 0.227 0.001 wikiutil.py:515(importPlugin) 200 0.007 0.000 0.185 0.001 __init__.py:910(editbar) 200 0.014 0.000 0.173 0.001 Page.py:260(lastEditInfo) 100 0.004 0.000 0.141 0.001 __init__.py:282(navibar) 100 0.001 0.000 0.141 0.001 wikiutil.py:1123(send_footer) 100 0.003 0.000 0.138 0.001 modern.py:70(footer) 800 0.011 0.000 0.129 0.000 security.py:52(<lambda>) 400 0.005 0.000 0.122 0.000 __init__.py:205(splitNavilink) 100 0.005 0.000 0.116 0.001 __init__.py:510(pageinfo) 100 0.009 0.000 0.108 0.001 request.py:1370(__init__) 100 0.005 0.000 0.096 0.001 request.py:63(__init__) 3400 0.062 0.000 0.091 0.000 wikiutil.py:772(link_tag) 1200 0.004 0.000 0.090 0.000 Page.py:187(_text_filename) 62400 0.088 0.000 0.088 0.000 posixpath.py:56(join) 200 0.003 0.000 0.088 0.000 editlog.py:57(getEditor) 18000 0.088 0.000 0.088 0.000 posixpath.py:168(exists) 100 0.001 0.000 0.075 0.001 request.py:1479(finish) 100 0.073 0.001 0.073 0.001 request.py:1014(finish) 800 0.010 0.000 0.072 0.000 Page.py:1208(getACL) 100 0.001 0.000 0.066 0.001 request.py:259(loadTheme) 100 0.008 0.000 0.065 0.001 wiki.py:95(__init__) 200 0.004 0.000 0.061 0.000 editlog.py:35(getEditorData) 100 0.005 0.000 0.059 0.001 __init__.py:793(actionsMenu) 100 0.000 0.000 0.058 0.001 base.py:219(macro) 100 0.001 0.000 0.058 0.001 wikimacro.py:33(getNames) 100 0.001 0.000 0.058 0.001 wikimacro.py:98(execute) 6800 0.037 0.000 0.058 0.000 request.py:1471(write)
patch-460 + experinamtal refactoring + patch-503
Requests per second: 27.25 [#/sec] (mean) 166360 function calls in 1.050 CPU seconds Ordered by: cumulative time, internal time, call count List reduced from 274 to 40 due to restriction <40> ncalls tottime percall cumtime percall filename:lineno(function) 100 0.008 0.000 1.002 0.010 request.py:662(run) 100 0.039 0.000 0.892 0.009 Page.py:780(send_page) 100 0.013 0.000 0.406 0.004 wikiutil.py:965(send_title) 100 0.011 0.000 0.293 0.003 Page.py:1117(send_page_content) 100 0.020 0.000 0.256 0.003 FrontPage:2(?) 100 0.004 0.000 0.215 0.002 modern.py:38(header) 2000 0.023 0.000 0.190 0.000 text_html.py:212(pagelink) 2800 0.033 0.000 0.185 0.000 Page.py:680(link_to) 5100 0.015 0.000 0.149 0.000 Page.py:466(exists) 7200 0.027 0.000 0.143 0.000 Page.py:195(getInfo) 200 0.007 0.000 0.140 0.001 __init__.py:910(editbar) 200 0.013 0.000 0.122 0.001 Page.py:410(lastEditInfo) 1300 0.025 0.000 0.113 0.000 wikiutil.py:434(getSysPage) 3400 0.060 0.000 0.105 0.000 Page.py:214(getInfoForDomain) 700 0.005 0.000 0.103 0.000 security.py:52(<lambda>) 200 0.002 0.000 0.091 0.000 __init__.py:750(shouldShowEditbar) 700 0.004 0.000 0.088 0.000 wikiacl.py:185(may) 1100 0.008 0.000 0.086 0.000 request.py:138(__getattr__) 100 0.001 0.000 0.080 0.001 request.py:1521(finish) 100 0.001 0.000 0.079 0.001 wikiutil.py:1189(send_footer) 100 0.078 0.001 0.078 0.001 request.py:1041(finish) 100 0.004 0.000 0.078 0.001 request.py:548(initdicts) 100 0.003 0.000 0.077 0.001 modern.py:70(footer) 100 0.061 0.001 0.074 0.001 wikidicts.py:300(scandicts) 3400 0.050 0.000 0.072 0.000 wikiutil.py:819(link_tag) 100 0.003 0.000 0.067 0.001 __init__.py:510(pageinfo) 200 0.003 0.000 0.063 0.000 editlog.py:57(getEditor) 200 0.004 0.000 0.050 0.000 editlog.py:35(getEditorData) 100 0.003 0.000 0.049 0.000 __init__.py:282(navibar) 100 0.009 0.000 0.048 0.000 request.py:1407(__init__) 6500 0.029 0.000 0.047 0.000 request.py:1513(write) 300 0.018 0.000 0.045 0.000 user.py:207(__init__) 200 0.006 0.000 0.041 0.000 Page.py:363(_last_edited) 400 0.004 0.000 0.040 0.000 __init__.py:205(splitNavilink) 6400 0.037 0.000 0.037 0.000 posixpath.py:168(exists) 100 0.005 0.000 0.036 0.000 request.py:64(__init__) 4800 0.018 0.000 0.033 0.000 Page.py:24(Page) 100 0.005 0.000 0.027 0.000 __init__.py:793(actionsMenu) 3900 0.006 0.000 0.022 0.000 request.py:132(<lambda>) 200 0.007 0.000 0.019 0.000 user.py:341(load_from_id)
patch-510
Requests per second: 21.43 [#/sec] (mean) 208460 function calls (203260 primitive calls) in 1.519 CPU seconds Ordered by: cumulative time, internal time, call count List reduced from 267 to 40 due to restriction <40> ncalls tottime percall cumtime percall filename:lineno(function) 100 0.009 0.000 1.470 0.015 request.py:670(run) 100 0.039 0.000 1.364 0.014 Page.py:767(send_page) 100 0.017 0.000 0.653 0.007 wikiutil.py:977(send_title) 100 0.010 0.000 0.459 0.005 Page.py:1099(send_page_content) 8200 0.049 0.000 0.448 0.000 Page.py:244(getPageStatus) 11200/6000 0.101 0.000 0.426 0.000 Page.py:123(get_rev) 100 0.035 0.000 0.424 0.004 FrontPage:2(?) 5300 0.029 0.000 0.405 0.000 Page.py:432(exists) 8200 0.044 0.000 0.387 0.000 Page.py:179(getPageBasePath) 100 0.005 0.000 0.350 0.004 modern.py:18(header) 2800 0.040 0.000 0.319 0.000 Page.py:667(link_to) 2000 0.021 0.000 0.304 0.000 text_html.py:212(pagelink) 1300 0.045 0.000 0.282 0.000 wikiutil.py:434(getSysPage) 200 0.006 0.000 0.199 0.001 __init__.py:917(editbar) 700 0.011 0.000 0.175 0.000 security.py:52(<lambda>) 200 0.016 0.000 0.150 0.001 Page.py:372(lastEditInfo) 3700 0.019 0.000 0.149 0.000 Page.py:26(__init__) 5300 0.139 0.000 0.147 0.000 Page.py:90(get_current_from_pagedir) 3700 0.060 0.000 0.131 0.000 Page.py:63(reset) 5300 0.088 0.000 0.130 0.000 Page.py:106(get_rev_dir) 100 0.001 0.000 0.121 0.001 wikiutil.py:1206(send_footer) 100 0.003 0.000 0.118 0.001 modern.py:51(footer) 200 0.003 0.000 0.109 0.001 __init__.py:757(shouldShowEditbar) 100 0.003 0.000 0.107 0.001 __init__.py:280(navibar) 400 0.005 0.000 0.097 0.000 __init__.py:203(splitNavilink) 100 0.004 0.000 0.095 0.001 __init__.py:517(pageinfo) 4900 0.032 0.000 0.093 0.000 Page.py:275(getPagePath) 200 0.003 0.000 0.080 0.000 editlog.py:57(getEditor) 700 0.004 0.000 0.080 0.000 wikiacl.py:185(may) 1100 0.008 0.000 0.076 0.000 request.py:140(__getattr__) 3200 0.049 0.000 0.073 0.000 wikiutil.py:840(link_tag) 100 0.002 0.000 0.073 0.001 request.py:1530(finish) 100 0.071 0.001 0.071 0.001 request.py:1050(finish) 100 0.004 0.000 0.068 0.001 request.py:550(initdicts) 200 0.004 0.000 0.067 0.000 editlog.py:35(getEditorData) 100 0.051 0.001 0.064 0.001 wikidicts.py:300(scandicts) 100 0.005 0.000 0.059 0.001 __init__.py:800(actionsMenu) 1100 0.003 0.000 0.057 0.000 Page.py:299(_text_filename) 700 0.007 0.000 0.056 0.000 Page.py:1374(getACL) 100 0.004 0.000 0.049 0.000 request.py:360(getAvailableActions)