On Friday 05 June 2009 17:07:55 mdipierro wrote:
> In a production environment you would be using mysql or postgresql. In
> this case you should be using
>
> SQLDB(...,pool_size=10)
> dn.define_table(....,migrate=False)
>
> the connection pooling and migrations off make a big difference.
> Perhaps you can run some tests and quantify this.
migrate=False makes cuts the model init time in half - now I'm getting about 
0.15-0.17s each time. Testing MySQL, stand by...

Hmmm.
0.21...0.25s with mysql and migrations off... and pool_size=10.

> When using sqlite you cannot use pooling and that means web2py has to
> open the db every time.
>
> Massimo
>
> On Jun 5, 2:58 am, Alexey Nezhdanov <[email protected]> wrote:
> > Hello again.
> > Recently I measured the perfomance of web2py regarding to 'milliseconds
> > per request'. Got some unexpected results. The most slow part of the
> > application is the model. It takes 40-60% of total time. Measurement was
> > done simply by putting
> > import time;print time.time(),'model start'
> > at the beginning of db.py and similar line at the end of it. Here is what
> > it produces on my laptop (Turion64, 1.6GHz, 1.5G RAM):
> >
> > 1244187446.32 model start
> > 1244187446.62 model stop
> > 0.3 second just to set up the model! I can live with 0.05 for it, may be
> > even 0.1, but 0.3 for _each_ GET or POST request is a bit too much, don't
> > you think?
> > That is for not too complex model - 17 tables, averaging 8.6 SQLFields
> > per one. On another web2py project it takes 0.38...0.42 second each time
> > :(
> >
> > I tried compiling my app and measuring again:
> > 1244187625.31 model start
> > 1244187625.69 model stop
> > Not any better. In fact, it's even worse, but since results vary from run
> > to run I suspect that it is just the same perfomance.
> >
> > Massimo, as I know you've been working on new model for some time
> > already. Is there any hope of having a faster model? I suspect more lazy
> > evaluation should do the magic, but I didn't do any research yet.
> >
> > Frankly speaking when I first discovered the fact that web2py always
> > _executes_ model, controller, view, I thought that it may be a perfomance
> > hog. Until I actually did that check I thought that it will execute db.py
> > each time it changes on-disk and then just keep built structures
> > somewhere around, probably pickled. May be it is still possible to use
> > that approach to some extent?
> >
> > Or may be I am just completely missing the point. Please comment.
> >
> > --
> > Sincerely yours
> > Alexey Nezhdanov
>
> 


-- 
Sincerely yours
Alexey Nezhdanov

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"web2py Web Framework" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to