# run with web2py.py -S welcome -N -R thisfile.py import time
db=DAL() db.define_table('test',Field('one')) db(db.test).delete() for k in range(1000): db.test.insert(one='one') db.commit() n = 100 t0 = time.time() for k in range(n): y = db.test.one print 'time to access field obj',(time.time()-t0)/n t0 = time.time() for k in range(n): rows = db(db.test).select(cacheable=False) # (*) print 'time to select 1000 recods',(time.time()-t0)/n/1000 row = db(db.test).select().first() t0 = time.time() for k in range(n): y = row.id y = row.one print 'time to access field values',(time.time()-t0)/n """ Results: web2py 1.99.7 time to access field obj 5.068 (microseconds) time to select 1000 recods 38.441 (microseconds) time to access field values 7.710 (microseconds) total time to access one field for each of 1000 records: 7748 (microseconds) web2py 2.0 time to access field obj 0.579 (microseconds) time to select 1000 recods 33.820 (microseconds) time to access field values 0.338 (microseconds) total time to access one field for each of 1000 records: 371 (microseconds) web2py 2.0 w cacheable = True (*) time to access field obj 0.579 (microseconds) time to select 1000 recods 24.741 (microseconds) time to access field values 0.300 (microseconds) total time to access one field for each of 1000 records: 324 (microseconds) (benhcmarks with SQLite on Mac Air and python 2.7) """ --