Found no problems running my production code against today's trunk. Didn't change the models.
I use grid to manage configuration items like currencies, locations, payment terms, delivery terms. More complex objects involve many-to-many relationships; lots of table joins, but very vanilla stuff. No surprises. On Sunday, August 26, 2012 10:47:35 AM UTC-4, 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 > --