Bytecode caching helps, but the GAE Model (_tableobj) is reconstructed
on every request for every table.  The GAE Model __metaclass__ works
by scanning the Model for properties, and these scans happen on every
request.  GAE Model was designed to be scanned once, and then module
cached, and reused on subsequent requests.  I am not trying to say
this overhead is greatly significant in the greater scheme of things,
but it is an overhead vs using the models directly from a imported
module.

The GAE driver could be changed to lazily generate the _tableobj.  It
would still rebuild models on each request, but then you only rebuild
the models that you actually use for each request, which is ideally no
models for a cached response.

Robin

On Sep 30, 1:08 pm, mdipierro <[email protected]> wrote:
> On Sep 30, 1:01 pm, Robin B <[email protected]> wrote:
>
> > > so i guess the next question is, do i have anything to worry about
> > > when using web2py on app engine per data model efficiency?
>
> > I am not sure what you are asking exactly.
>
> > If you use several tables and references, without list properties and
> > batch get, you would see the N+1 query problem de-referencing
> > references.
>
> > Web2py also re-evaluates your model definitions on every request which
> > could be an efficiency concern for some people.
>
> Yes but are caching the bytecode compiled models on GAE.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"web2py-users" 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