Testing with the biggest page in the standard wiki except BadContent. See http://moinmaster.wikiwikiweb.de/PageSize.

The page does not contain any macros, it is the best case for caching system.

All profiles run

ab -n 101 -c 1 http://localhost:8000/EmptyPage

Using standalone.py from current code so we can compare profiles.

Release 1.3.0

Requests per second:    5.80 [#/sec] (mean)

         1361772 function calls (1332072 primitive calls) in 6.059 CPU seconds

   Ordered by: cumulative time, internal time, call count
   List reduced from 271 to 40 due to restriction <40>

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
      100    0.018    0.000    5.950    0.060 request.py:654(run)
      100    0.041    0.000    5.835    0.058 Page.py:650(send_page)
      100    0.020    0.000    3.120    0.031 Page.py:982(send_page_content)
      100    0.093    0.001    2.964    0.030 WhyWikiWorks:2(?)
29800/10900    1.589    0.000    2.363    0.000 Page.py:77(get_rev)
      100    0.026    0.000    2.260    0.023 wikiutil.py:902(send_title)
     8900    0.072    0.000    2.148    0.000 Page.py:320(exists)
     6000    0.100    0.000    2.145    0.000 text_html.py:212(pagelink)
     6600    0.117    0.000    2.137    0.000 Page.py:550(link_to)
21800/11000    0.425    0.000    1.957    0.000 Page.py:108(getPagePath)
      700    0.010    0.000    1.633    0.002 security.py:52(<lambda>)
      700    0.004    0.000    1.481    0.002 wikiacl.py:185(may)
      700    0.006    0.000    1.476    0.002 request.py:133(__getattr__)
      100    0.004    0.000    1.470    0.015 request.py:540(initdicts)
      100    0.006    0.000    1.466    0.015 wikidicts.py:289(scandicts)
      100    0.031    0.000    1.448    0.014 pickle.py:1392(loads)
      100    0.531    0.005    1.417    0.014 pickle.py:859(load)
     2600    0.629    0.000    0.719    0.000 pysupport.py:37(importName)
     1200    0.038    0.000    0.701    0.001 wikiutil.py:508(importPlugin)
     8000    0.302    0.000    0.572    0.000 pickle.py:1221(load_setitems)
      900    0.005    0.000    0.570    0.001 base.py:219(macro)
      900    0.011    0.000    0.566    0.001 wikimacro.py:98(execute)
      100    0.005    0.000    0.437    0.004 modern.py:38(header)
    12100    0.274    0.000    0.274    0.000 pickle.py:884(marker)
     1300    0.033    0.000    0.251    0.000 wikiutil.py:432(getSysPage)
    31600    0.250    0.000    0.250    0.000 posixpath.py:168(exists)
     1300    0.005    0.000    0.240    0.000 Page.py:187(_text_filename)
      200    0.008    0.000    0.232    0.001 __init__.py:910(editbar)
     7100    0.131    0.000    0.208    0.000 wikiutil.py:765(link_tag)
    17000    0.109    0.000    0.161    0.000 request.py:1469(write)
      100    0.001    0.000    0.160    0.002 wikiutil.py:1116(send_footer)
      100    0.004    0.000    0.158    0.002 __init__.py:282(navibar)
      100    0.003    0.000    0.157    0.002 modern.py:70(footer)
      200    0.005    0.000    0.144    0.001 Page.py:260(lastEditInfo)
   104600    0.143    0.000    0.143    0.000 posixpath.py:56(join)
      700    0.009    0.000    0.141    0.000 Page.py:1208(getACL)
      400    0.005    0.000    0.127    0.000 __init__.py:205(splitNavilink)
      100    0.004    0.000    0.123    0.001 __init__.py:510(pageinfo)
      100    0.010    0.000    0.109    0.001 request.py:1370(__init__)
   117000    0.109    0.000    0.109    0.000 pickle.py:1193(load_long_binput)

Release 1.3.1

Requests per second:    8.80 [#/sec] (mean)

         442052 function calls (412352 primitive calls) in 4.498 CPU seconds

   Ordered by: cumulative time, internal time, call count
   List reduced from 245 to 40 due to restriction <40>

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
      100    0.017    0.000    4.390    0.044 request.py:654(run)
      100    0.041    0.000    4.276    0.043 Page.py:650(send_page)
      100    0.020    0.000    3.017    0.030 Page.py:982(send_page_content)
      100    0.088    0.001    2.863    0.029 WhyWikiWorks:2(?)
29800/10900    1.544    0.000    2.308    0.000 Page.py:77(get_rev)
     8900    0.084    0.000    2.110    0.000 Page.py:320(exists)
     6600    0.108    0.000    2.077    0.000 Page.py:550(link_to)
     6000    0.090    0.000    2.073    0.000 text_html.py:212(pagelink)
21800/11000    0.412    0.000    1.912    0.000 Page.py:108(getPagePath)
      100    0.025    0.000    0.811    0.008 wikiutil.py:909(send_title)
     2600    0.626    0.000    0.716    0.000 pysupport.py:37(importName)
     1200    0.036    0.000    0.696    0.001 wikiutil.py:515(importPlugin)
      900    0.005    0.000    0.567    0.001 base.py:219(macro)
      900    0.011    0.000    0.562    0.001 wikimacro.py:98(execute)
      100    0.005    0.000    0.443    0.004 modern.py:38(header)
     1300    0.032    0.000    0.256    0.000 wikiutil.py:432(getSysPage)
    31600    0.242    0.000    0.242    0.000 posixpath.py:168(exists)
     1300    0.005    0.000    0.236    0.000 Page.py:187(_text_filename)
      200    0.008    0.000    0.230    0.001 __init__.py:910(editbar)
     7100    0.123    0.000    0.199    0.000 wikiutil.py:772(link_tag)
      700    0.010    0.000    0.196    0.000 security.py:52(<lambda>)
      100    0.001    0.000    0.156    0.002 wikiutil.py:1123(send_footer)
      100    0.004    0.000    0.153    0.002 __init__.py:282(navibar)
      100    0.003    0.000    0.153    0.002 modern.py:70(footer)
    17000    0.091    0.000    0.141    0.000 request.py:1471(write)
      200    0.005    0.000    0.140    0.001 Page.py:260(lastEditInfo)
   104600    0.140    0.000    0.140    0.000 posixpath.py:56(join)
      700    0.009    0.000    0.140    0.000 Page.py:1208(getACL)
      400    0.005    0.000    0.122    0.000 __init__.py:205(splitNavilink)
      100    0.004    0.000    0.119    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.095    0.001 request.py:63(__init__)
     1300    0.036    0.000    0.086    0.000 __init__.py:3(?)
      100    0.002    0.000    0.077    0.001 request.py:1479(finish)
      100    0.075    0.001    0.075    0.001 request.py:1014(finish)
      100    0.008    0.000    0.068    0.001 wiki.py:95(__init__)
      100    0.001    0.000    0.066    0.001 request.py:259(loadTheme)
      100    0.006    0.000    0.061    0.001 __init__.py:793(actionsMenu)
      100    0.001    0.000    0.061    0.001 wikimacro.py:33(getNames)
      100    0.001    0.000    0.059    0.001 wikiutil.py:565(getPlugins)

patch-510

Requests per second:    14.73 [#/sec] (mean)

         341660 function calls (332060 primitive calls) in 2.686 CPU seconds

   Ordered by: cumulative time, internal time, call count
   List reduced from 247 to 40 due to restriction <40>

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
      100    0.017    0.000    2.637    0.026 request.py:670(run)
      100    0.041    0.000    2.521    0.025 Page.py:767(send_page)
      100    0.015    0.000    1.586    0.016 Page.py:1099(send_page_content)
      100    0.109    0.001    1.544    0.015 WhyWikiWorks:2(?)
     6000    0.058    0.000    1.105    0.000 text_html.py:212(pagelink)
    11600    0.069    0.000    1.102    0.000 Page.py:244(getPageStatus)
19400/9800    0.193    0.000    1.086    0.000 Page.py:123(get_rev)
     6600    0.118    0.000    1.065    0.000 Page.py:667(link_to)
    11600    0.064    0.000    1.016    0.000 Page.py:179(getPageBasePath)
     8900    0.043    0.000    0.968    0.000 Page.py:432(exists)
      100    0.017    0.000    0.657    0.007 wikiutil.py:977(send_title)
     9800    0.527    0.000    0.541    0.000 Page.py:90(get_current_from_pagedir)
      100    0.005    0.000    0.388    0.004 modern.py:18(header)
     1300    0.045    0.000    0.292    0.000 wikiutil.py:434(getSysPage)
     9800    0.169    0.000    0.277    0.000 Page.py:106(get_rev_dir)
      600    0.010    0.000    0.254    0.000 security.py:52(<lambda>)
      200    0.006    0.000    0.247    0.001 __init__.py:917(editbar)
     5400    0.027    0.000    0.225    0.000 Page.py:26(__init__)
     5400    0.091    0.000    0.198    0.000 Page.py:63(reset)
     6900    0.102    0.000    0.167    0.000 wikiutil.py:840(link_tag)
     1200    0.004    0.000    0.156    0.000 Page.py:299(_text_filename)
      200    0.003    0.000    0.141    0.001 __init__.py:757(shouldShowEditbar)
     6600    0.043    0.000    0.138    0.000 Page.py:275(getPagePath)
      600    0.007    0.000    0.135    0.000 Page.py:1374(getACL)
    16600    0.079    0.000    0.125    0.000 request.py:1522(write)
      100    0.003    0.000    0.108    0.001 __init__.py:280(navibar)
      100    0.001    0.000    0.101    0.001 wikiutil.py:1206(send_footer)
      100    0.003    0.000    0.098    0.001 modern.py:51(footer)
    11500    0.098    0.000    0.098    0.000 posixpath.py:168(exists)
      400    0.005    0.000    0.097    0.000 __init__.py:203(splitNavilink)
      600    0.003    0.000    0.083    0.000 wikiacl.py:185(may)
      700    0.005    0.000    0.080    0.000 request.py:140(__getattr__)
      900    0.004    0.000    0.078    0.000 base.py:226(macro)
      100    0.001    0.000    0.075    0.001 request.py:1530(finish)
      900    0.009    0.000    0.074    0.000 wikimacro.py:98(execute)
      100    0.004    0.000    0.074    0.001 request.py:550(initdicts)
      100    0.073    0.001    0.073    0.001 request.py:1050(finish)
      100    0.057    0.001    0.070    0.001 wikidicts.py:300(scandicts)
      100    0.004    0.000    0.062    0.001 __init__.py:517(pageinfo)
      100    0.005    0.000    0.059    0.001 __init__.py:800(actionsMenu)

patch-538 + page refactoring

See NirSoffer

Requests per second:    20.30 [#/sec] (mean)

         252272 function calls in 1.516 CPU seconds

   Ordered by: cumulative time, internal time, call count
   List reduced from 247 to 40 due to restriction <40>

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
      100    0.019    0.000    1.467    0.015 request.py:674(run)
      100    0.041    0.000    1.349    0.013 Page.py:944(send_page)
      100    0.014    0.000    0.840    0.008 Page.py:1276(send_page_content)
      100    0.096    0.001    0.797    0.008 WhyWikiWorks:2(?)
     6000    0.053    0.000    0.472    0.000 text_html.py:212(pagelink)
     6600    0.093    0.000    0.470    0.000 Page.py:844(link_to)
      100    0.012    0.000    0.335    0.003 wikiutil.py:978(send_title)
      100    0.005    0.000    0.259    0.003 modern.py:18(header)
     8500    0.019    0.000    0.220    0.000 Page.py:482(exists)
    10100    0.022    0.000    0.202    0.000 Page.py:147(getInfo)
     5200    0.067    0.000    0.166    0.000 Page.py:121(_getInfoFromDomain)
     6900    0.100    0.000    0.161    0.000 wikiutil.py:841(link_tag)
      200    0.005    0.000    0.144    0.001 __init__.py:925(editbar)
    16700    0.080    0.000    0.125    0.000 request.py:1526(write)
      300    0.005    0.000    0.114    0.000 Page.py:580(userMay)
      200    0.001    0.000    0.108    0.001 __init__.py:761(shouldShowEditbar)
      700    0.006    0.000    0.106    0.000 request.py:146(__getattr__)
      300    0.002    0.000    0.106    0.000 wikiacl.py:185(may)
      100    0.004    0.000    0.101    0.001 request.py:554(initdicts)
      100    0.084    0.001    0.097    0.001 wikidicts.py:300(scandicts)
      900    0.004    0.000    0.078    0.000 base.py:226(macro)
      100    0.002    0.000    0.078    0.001 request.py:1534(finish)
      100    0.075    0.001    0.075    0.001 request.py:1054(finish)
     6700    0.074    0.000    0.074    0.000 posixpath.py:168(exists)
      900    0.009    0.000    0.074    0.000 wikimacro.py:98(execute)
      100    0.004    0.000    0.074    0.001 __init__.py:280(navibar)
      400    0.004    0.000    0.063    0.000 __init__.py:203(splitNavilink)
      100    0.009    0.000    0.048    0.000 request.py:1417(__init__)
     6200    0.029    0.000    0.046    0.000 text_html.py:256(url)
      200    0.004    0.000    0.045    0.000 Page.py:401(lastEditInfo)
     1100    0.014    0.000    0.044    0.000 wikiutil.py:539(importPlugin)
     1300    0.028    0.000    0.044    0.000 wikiutil.py:436(getSysPage)
    17000    0.033    0.000    0.042    0.000 socket.py:248(write)
      100    0.001    0.000    0.039    0.000 wikiutil.py:1207(send_footer)
     4700    0.030    0.000    0.038    0.000 Page.py:32(__init__)
      100    0.003    0.000    0.036    0.000 modern.py:51(footer)
      100    0.006    0.000    0.036    0.000 request.py:64(__init__)
      200    0.006    0.000    0.035    0.000 Page.py:357(_last_edited)
      100    0.003    0.000    0.032    0.000 __init__.py:517(pageinfo)
      100    0.009    0.000    0.027    0.000 Page.py:769(get_raw_body)

MoinMoin: MoinProfiling/HugePage (last edited 2007-10-29 19:08:58 by localhost)