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

