spiral-project / daybed

Form validation and data storage API
http://daybed.rtfd.org/
BSD 3-Clause "New" or "Revised" License
53 stars 8 forks source link

Speedup tests #156

Open almet opened 10 years ago

almet commented 10 years ago

Tests are currently slow. Investigate why and fix them :)

leplatrem commented 10 years ago

Side notes: 291 tests

With a running couchdb :

nosetests --with-profile --profile-sort=time daybed > profile.txt
...................................................................................................................................................................................................................................................................................................

         5932255 function calls (5880567 primitive calls) in 28.208 seconds

   Ordered by: internal time

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
      784    9.575    0.012    9.575    0.012 /usr/lib/python2.7/socket.py:336(read)
     3401    4.661    0.001    4.661    0.001 /usr/lib/python2.7/socket.py:406(readline)
    25122    1.214    0.000    1.765    0.000 /home/mle/Code/daybed/src/.venv/local/lib/python2.7/site-packages/pyramid-1.5-py2.7.egg/pyramid/util.py:403(sorted)
20448/10431    1.154    0.000   11.047    0.001 /home/mle/Code/daybed/src/.venv/local/lib/python2.7/site-packages/pyramid-1.5-py2.7.egg/pyramid/util.py:511(wrapper)
     2067    0.597    0.000    0.715    0.000 /home/mle/Code/daybed/src/.venv/local/lib/python2.7/site-packages/pyramid-1.5-py2.7.egg/pyramid/config/routes.py:24(add_route)
    10176    0.566    0.000    0.896    0.000 /home/mle/Code/daybed/src/.venv/lib/python2.7/site-packages/zope.interface-4.1.1-py2.7-linux-x86_64.egg/zope/interface/registry.py:182(registerAdapter)
    61344    0.449    0.000    0.449    0.000 /home/mle/Code/daybed/src/.venv/lib/python2.7/linecache.py:43(checkcache)

Without couchdb (24 failing tests) :

5881459 function calls (5830118 primitive calls) in 14.172 seconds

   Ordered by: internal time

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
    25122    1.235    0.000    1.805    0.000 /home/mle/Code/daybed/src/.venv/local/lib/python2.7/site-packages/pyramid-1.5-py2.7.egg/pyramid/util.py:403(sorted)
    10176    0.676    0.000    1.026    0.000 /home/mle/Code/daybed/src/.venv/lib/python2.7/site-packages/zope.interface-4.1.1-py2.7-linux-x86_64.egg/zope/interface/registry.py:182(registerAdapter)
     9222    0.582    0.000    0.582    0.000 /home/mle/Code/daybed/src/.venv/local/lib/python2.7/site-packages/pyramid-1.5-py2.7.egg/pyramid/config/views.py:227(secured_view)
    82998    0.493    0.000    0.493    0.000 /home/mle/Code/daybed/src/.venv/local/lib/python2.7/site-packages/pyramid-1.5-py2.7.egg/pyramid/config/views.py:110(preserve_view_attrs)
    61560    0.473    0.000    0.473    0.000 /home/mle/Code/daybed/src/.venv/lib/python2.7/linecache.py:43(checkcache)
    25122    0.426    0.000    2.377    0.000 /home/mle/Code/daybed/src/.venv/local/lib/python2.7/site-packages/pyramid-1.5-py2.7.egg/pyramid/config/util.py:117(make)
20448/10431    0.423    0.000   11.547    0.001 /home/mle/Code/daybed/src/.venv/local/lib/python2.7/site-packages/pyramid-1.5-py2.7.egg/pyramid/util.py:511(wrapper)
   578950    0.379    0.000    0.379    0.000 /home/mle/Code/daybed/src/.venv/lib/python2.7/site-packages/zope.interface-4.1.1-py2.7-linux-x86_64.egg/zope/interface/interface.py:545(__hash__)
     9381    0.373    0.000    1.035    0.000 /home/mle/Code/daybed/src/.venv/local/lib/python2.7/site-packages/pyramid-1.5-py2.7.egg/pyramid/config/views.py:602(add_view)
     2067    0.368    0.000    0.496    0.000 /home/mle/Code/daybed/src/.venv/local/lib/python2.7/site-packages/pyramid-1.5-py2.7.egg/pyramid/config/routes.py:24(add_route)
    20925    0.366    0.000    0.493    0.000 /home/mle/Code/daybed/src/.venv/local/lib/python2.7/site-packages/pyramid-1.5-py2.7.egg/pyramid/config/__init__.py:512(action)
   359181    0.351    0.000    0.351    0.000 /home/mle/Code/daybed/src/.venv/local/lib/python2.7/site-packages/pyramid-1.5-py2.7.egg/pyramid/util.py:419(add_arc)
     1467    0.275    0.000    0.329    0.000 /home/mle/Code/daybed/src/.venv/local/lib/python2.7/site-packages/pyramid-1.5-py2.7.egg/pyramid/config/routes.py:417(add_route_predicate)
    20448    0.272    0.000    0.822    0.000 /usr/lib/python2.7/traceback.py:281(extract_stack)
    15741    0.239    0.000    0.330    0.000 /home/mle/Code/daybed/src/.venv/local/lib/python2.7/site-packages/pkg_resources.py:2339(insert_on)
    28942    0.231    0.000    1.280    0.000 /home/mle/Code/daybed/src/.venv/local/lib/python2.7/site-packages/pyramid-1.5-py2.7.egg/pyramid/config/__init__.py:1079(resolveConflicts)
     9222    0.229    0.000    3.733    0.000 /home/mle/Code/daybed/src/.venv/local/lib/python2.7/site-packages/pyramid-1.5-py2.7.egg/pyramid/config/views.py:1191(register)
   384303    0.219    0.000    0.219    0.000 /home/mle/Code/daybed/src/.venv/local/lib/python2.7/site-packages/pyramid-1.5-py2.7.egg/pyramid/util.py:414(add_node)
Natim commented 10 years ago

Also the test server unreachable for redis is very slow.