Just an idea for a formal approach moving forward: Write unit tests and have others contribute unit tests where the base ones don't cover their scenarios and then use Jenkins or some CI tool to run these at some time interval or every time there's code checked in. OpenShift provides a jenkins cartridge if you need an environment for this.
Andrew On Sunday, August 26, 2012 9:47:35 AM UTC-5, Massimo Di Pierro wrote: > > Michele, Jonathan, Bruno, Anthony and I have continued test possible ways > to improve web2py code. > > We have lazy tables in trunk and they can increase the speed of your > code a lot but require minor rewrites of models. > > We are also looking at ways to improve the speed of your code without any > rewrite and we have some important changes in trunk. > They really need to be tested to make sure they do not break backward > compatibility. > > accessing: > request.<anything> > response.<anything> > session.<anything> > as you can imagine this is everywhere. this is a major bottleneck. We made > it 2-3x faster > > accessing: > db.<tablename> > we made this 2x faster > > accessing: > db.<tablename>.<fieldname> > we made this 20x faster (not a typo, 20x) > > Given row = db(db.table).select()[0] > accessing: > row.<fieldname> > This is also a major bottleneck. We make this 10x faster. > > WE NEED TESTERS. Does the latest trunk/nightly built break your app? > > WE NEED INDEPENDENT BENCHMARKS AGAINST 1.99.7. Here is the code to > benchmark: > > ------------- > import time > db=DAL() > db.define_table('person',Field('name')) > db.test.insert(name='one') > n = 100000 > > t0 = time.time() > for k in range(n): > y = db.person.name > print (time.time()-t0)/n > > row = db(db.person).select().first() > > t0 = time.time() > for k in range(n): > y = row.name > print (time.time()-t0)/n > ---------- > > Massimo > --