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
>
--