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
>

-- 



Reply via email to