whoopsy. I was testing dict over storage performances, i.e. choosing to NOT 
use storage alltogether. 

If you wanted a comparison between getting values out of a storage with 
"dot notation" and "dict notation" the test should be different.

Updated results (different machine)

set storage takes  4.03858570014
set dict takes 1.54960379043
get storage takes 10.6617240459
get dict takes 1.52191221231
get storage with dict notation takes 3.38868745888

updated code

from gluon.storage import Storage

def set_storage():
    st = Storage()
    st.test1 = 'test1'
    st.test2 = 'test2'
    st.test3 = 'test3'
    st.test4 = 'test4'
    st.test5 = 'test5'
    st.test6 = 'test6'
    st.test7 = 'test7'
    st.test8 = 'test9'
    st.test9 = 'test9'
    st.test10 = 'test10'
    return st

def set_dict():
    st = dict()
    st['test1'] = 'test1'
    st['test2'] = 'test2'
    st['test3'] = 'test3'
    st['test4'] = 'test4'
    st['test5'] = 'test5'
    st['test6'] = 'test6'
    st['test7'] = 'test7'
    st['test8'] = 'test8'
    st['test9'] = 'test9'
    st['test10'] = 'test10'
    return st

def get_storage(st):
    return st.test1 + st.test2 + st.test3 + st.test4 + st.test5 +\
     st.test6 + st.test7 + st.test8 + st.test9 + st.test10 == 
'test1test2test3test4test5test6test7test9test9test10'

def get_dict(st):
    return st['test1'] + st['test2'] + st['test3'] + st['test4'] + st[
'test5'] +\
     st['test6'] + st['test7'] + st['test8'] + st['test9'] + st['test10'] == 
'test1test2test3test4test5test6test7test8test9test10'

def get_storage_parenthesis(st):
    return st['test1'] + st['test2'] + st['test3'] + st['test4'] + st[
'test5'] +\
     st['test6'] + st['test7'] + st['test8'] + st['test9'] + st['test10'] == 
'test1test2test3test4test5test6test7test8test9test10'

if __name__ == '__main__':
    from timeit import Timer
    t0 = Timer(setup='from __main__ import set_storage',
              stmt='set_storage()')
    t1 = Timer(setup='from __main__ import set_dict',
              stmt='set_dict()')

    t2 = Timer(setup="from __main__ import set_storage, get_storage; st = 
set_storage()", stmt="get_storage(st)")
    t3 = Timer(setup="from __main__ import set_dict, get_dict; st = 
set_dict()", stmt="get_dict(st)")
    t4 = Timer(setup="from __main__ import set_storage, 
get_storage_parenthesis; st = set_storage()", stmt=
"get_storage_parenthesis(st)")

    print 'set storage takes ', t0.timeit(number=1000000)
    print 'set dict takes', t1.timeit(number=1000000)
    print 'get storage takes', t2.timeit(number=1000000)
    print 'get dict takes', t3.timeit(number=1000000)
    print 'get storage with dict notation takes' , t4.timeit(number=1000000)




-- 



Reply via email to